Skip to main content

Full text of "TS-2068 Up-date"

See other formats


4,95 155ue APRIL 1992 
$18,080 year 


THE VERY BEST 
SUPPORT FOR SINCLAIR! 


DAT 


ES 


oo mo) LIPDATE os gzane 
emer) | Bebo Petnises 


* UPDATE 


COMPUTER SYSTEMS » 


UPDATE COMPUTER SYSTEMS is Edited and Published by Carol and 
Frank Davis of P.O. Box 1095, Peru, Indiana 46970. Phone number 
is 317-473-8031, with normal phone hours being between S P.M. 
and 9:30 P.M. Eastern Time during the week and Noon to 6 P.M. on 
weekends. When we are not there or unavailable, please leave a 


message with our answering machine, you’1]1] be answered by mail. 


Mailing date for all issues is the fifteenth of the issue month. 
At times due to Postal Holidays, or the 15th falling on a 
weekend (bulk mail not accepted on weekends) they will be 
received at the Postal Unit the next business day. Please allow 
two to three weeks from this date before assuming your issue is 


not on its way to you. The Postal service telis us it can take 
as long as 6 weeks via buik mail. For those wanting speedier 
service we can arrange your issue to go by First Class Mail, but 


that will raise the price of your subscription by $3.00. 


The magazine is published on a quarterly basis in the months of 
October, January, April and July. All subscriptions begin and 
end at the same time...first issue being October and all 
renewals coming due after receipt of the July issue. The cost 
is $18.00 U.S. for a one year subscription for North America, 
and for those outside of this area $20.00 U.S. We accept 
personal and business checks, money orders, and Cash. We do not 
accept credit cards at this time, due to costs. Back issues, 
where available can be obtained from us, at regular prices. 


Assistance in Publishing this magazine is provided by Eliad P. 
Wannum, poet, computer user and all round good guy. The 
magazine is made possible by the regular contributors such as 
Peter Hale, Bill Cable, Al Feng, Bob Hartung to name a few, and 
by the many contributions of other writers and programmers. 
Your contributions to this magazine are welcome. This is truly 
a magazine BY THE USER AND FOR THE USER OF SINCLAIR, TIMEX AND 
CAMBRIDGE COMPUTERS. When we cover other operating systems such 
as CPM or MSDOS it will be in relationship to our computers or 
emulators for our systems to run their software. We primarily 
cover disk based systems and software for the TS2068, Spectrum, 
QL, 288...and will cover items on the TS1000 if disk drive based 
or in relationship to using it with the above’ mentioned 


computers.” We do accept reviews of peripherals that are useable 
by our systems, such aS scanners, printers, modems, ete, 
Submissions should be on disk or hard copy (two copies and at 
least NL@, no draft mode). If there is artwork, please let us 


Know in what order it should be used, and provide it as a saved 
screen or hard copy screen dump. The format is very relaxed. 
Just pay attention- to the width of the pages and allow 3/4 inch 
top and bottom, and make the left and right margins wide enough 
to accomodate a 3 hole punch that does not cut out some of the 
text. We have enlarge and reduction capacity to adjust a page, 
but may lose some print legibility in the process. Most 
important is legibility. Draft quality dot matrix does not 
reproduce weil. Print size preference is ELITE 12 characters 
per inch. PICA 10 characters per inch is okay also, but please 
no condensed print. Please do not make programs submitted on 
cassette tape under any circumstance, disk or hardcopy) only. 
Exceptions to this would be the wafers used on the Rotronics 
Wafadrive for the Spectrum or TS2068 with emulator. 288 
programs on disk may be in either IBM or QL format or hardcopy. 
TS2068 programs may be LLISTED in Se chr. lines. 


UPDATE COMPUTER SYSTEMS PAGE DIRECTORY, APRIL 1992 


' 
The computer that an article concerns is marked by using the 
following mark at the start of the page number-TS2068 = *,QL = # 
,288 = % ,TS1000=". There will be no mark if the article or ad 
applies to all or several different computer systems. 


Inside Front Cover contains magazine basic information 


Page No. 1---Directory ‘ 
Page No. 2---Not Quite An Editorial, Just News 

*xPage No. 3---Locked Out? How To Recover! by Don Lambert , 
*Page No. 4---LKDOS vs JLO SAFE by Bill Pedersen 

*xPage No. 5---Mechanical Affinity Ad--TS2068 

Page No. 6---Sinclair Publications, 2nd Look by E.P. Wannum 
Page No. 7---Back Issues of UPDATE and Late Breaking News 


About Computer Monthly 

Page No. 8---RMG Ad 

*Page No. 9---4 Times Screen$ by Abed Kahale 

Page No. 10---Disk Operating Systems by Billi Pedersen 

#Page No. 11---Archive Made Easy by Andrew Hradesky 

#Page No. 15---E.E.C. Ltd Ad (QL distributor, UK) 

*Page No. 16---John McMichael Ad for Print Factory Graphics 

#Page No. 17---Interest Computation Program by Paul Holmgren 

#Page No. 20---Bootsort Without. TK2 by Robert Hartung 

#Page No. 21---Cable Column--Archive Series--Part 8 by Bill 
Cable of Wood and Wind Computing 

#Page No. 23---Using Quill for ASCII’ Files by R. Hartung» 3 

Page No. 24---A Composite Booster by Bob Hartung 

Page No. 25---Mechanical Affinity’ Ad 

#Page No. 26---A Selective Menu-Loader by Robert Hartung 

Page No. 27---DMA--Computerfest '92 Ad 

#Page No. 28---EMSoft Ad 

#Page No. 29---NESQLUG Demonstrates New QL Extension by Peter 
Hale (news for April) 

#Page No. 30---Notes From EMSoft by Peter Hale 

#Page No. 30---Lighthouse by Taylor Penrose 

#Page No. 31---Lighthouse listing (good tutorial aid) 

#Page No. 32---IQLR Ad 

*Page No. 33---Printed Circuit Board Development Program by 
Bill Pedersen Manual Part 1 

*Page No. 36---Part 1 of listings for Bill Pedersens CAD 
Program (more next issue) 

*Page No. 45---The Sinclair Desktop Publishing Journal 
by Mike Felerski 

#Page No. 49---QUANTA's Revisions to Library and How to Obtain 
from the U.S. Librarian--Paul Holmgren 

#Page No. 50---Jumper Settings For The 3.2 Meg Drive by Dick 
Taylor (excerpted from IQLR) 

Back Covers ---Issue Disks for TS2068 and QL 


All material used in this publication is copywritten and remains 
solely in ownership by either the Magazine or the author. To 
reprint from this magazine please contact either the magazine 
or specific author. All Issue Disks are copyrighted and remain 
the property of the software author. All hardware advice is 
followed at the users sole risk. Where it's needed please obtain 
competent help on all hardware modifications or projects. Most 
of all enjoy the magazine and may it greatly enhance your use of 
your computer. Your contribution is encouraged. 


i 


NOT QUITE 


by Frank WwW. 


Well it had to happen at 
some time, this issue I ran out 
of room for all that I wanted to 
cover. The sad part of all of 
this is that I wanted to have 
more coverage for the Z88, but I 
am stuck with what is submitted 
to the magazine. We have picked 
up at least 6 more of our 
readers that have Z88s, so I 
hope to see this improve a bit 
in the future. At the present 
about 30% of you have and use to 
some extent a Z88. Over half of 
you have QLs and about 40% of 
you have TS2068s. Many of you 
have 2 or more of the above, -and 
at least 25% still have a TS1000 


and still consider it a neat 
little machine to use. 
For those who have or are 


considering a Gold Card for your 
QL, I have included something in 
this issue that I normally do 
not do, an article taken from 
another magazine. The article 
was of such high quality and the 
news of such importance that I 


felt duty bound to make this 
data available to my readers. 
This article concerns the 3.2 
meg drives and the proper 


settings to use the TEAC version 


of these. The article is by 
Dick Taylor and is from the 
International QL Report. Thanks 


guys! 


Also, when you come to the 
ads for Mechanical Affinity for 
the Gold Card, they are no 
longer $500 plus $10 P & H; they 


are now going for $490 and this 
includes P & H and _ insurance. 
They are in stock and available. 
Plans are also in the works to 
include much more in the way of 
English, German and Italian 
hardware and software for the QL 


and the Z88. If they do not have 
what you want in stock they can 
usually get it for you. We need 
to have more North American 


dealers for our computers! 
More good news to follow. 


AN EDITORIAL, 


Davis 


In this issue we have 
started the first part of an 
extensive program for you to 
type in that will allow you to 
create printed circuit boards, 
high definition art, logos, 
banners, etc. on your TS2068. 
It is a full featured Computer 
Aided Design program, and it 
is a biggy. We did not have 
room for all of it in one 
issue, so more in the next 
issue. For those in a hurry or 


not wanting to spend all of 
their available free time 
typing it in...it is being 
offered as an Issue Disk. 


Check the back pages for 
details on how to obtain this 
work of art from Bill Pedersen 
for the Larken and Oliger disk 
systems. For those who order, 
they will get many files all 
set to use for printed circuit 
boards. 

Some news on the Z88 front 
from Mike Fink of Domino Cubes 
and a new location. Domino 
Cubes, 484 W. 43rd St., Suite 
270, NY, NY 10036. Phone No. 
212-971-0368, and FAX is 
212-268-4122. Mike promised me 
some articles and ads for the 
next issue, and said to tell 
all of you that he has at 
least 3 things for your 2Z88 
that can be found no where 
@lse: (a) a mail merge that 
really works for the 288, (b) 
Remote Control Macro that does 
DTP and multiple copies and 
you can turn it on and off 
from anywhere, (c) single 
stroke loading of selected 
files from an eprom into an 
empty filer. Of course he also 
sells Z88s and books, cables, 
software, etc. 

Nigel Searle of 16 Church 
Street, Keene, NH 03431, 
Telephone 1-800-388-9836, has 
for sale: Z88s for $199, 
Memory 128K for $40, Memory 
512K for $160, and other 
items. 


JIVUST NEWS 


LOCKED OUT? HOW TO RECOVER 


T/S 2068 AND THE LARKEN AND OLIGER DISK DRIVES. ' 


Submitted by Donald S. Lambert 


Letter to George Chambers 83 @2 
1992. 


In all my computing, I have been 
trapped by a= problem three 
times. Of course it is all my 
fault but maybe there is a way 
out. And that is on each of 
these times I have either tried 
to SAVE to a disk drive that I 
didn’t have or on two occasions 
I tried to SAVE when the disk 
interface to disk drive ribbon 
cable was disconnected. Try as 
I might I have found no way to 
abort the SAVE and have had to 
turn off the computer and lose 
the file. It might be possible 
to plug in the disk drive ribbon 
cable but there is always the 


possibility of zapping 
something. And while I have a 
Larken disk interface with a 


RAMdisk that is full and besides 


once you have committed to a 
disk drive the computer hangs 
onto that drive until it is 
used. What do you do in that 


situation? 


George replied @3 14 1992. : 
I have been looking at = your 
letter. You asked about how to 
break out of a computer lock-up 
when you try to make a SAVE/LOAD 
to a non-existant drive. You are 
correct, I would never plug a 
drive in while the computer is 
Powered up. 


I thought I probably knew the 
answer so I shut off my 
computer, disconnected my drive 
@. Then I re-powered and tried 


saving an Mscript file to drive 


@. Well all the other drives 
spun of course, but not the 
disconnected drive Qa. The 


computer was hung up. I then did 


what I would usually do. I 
pressed the NMI- button and then 
the A key. As I expected the 


computer broke out of it’s 
hung-up condition with an error 
report at the line in the 


program where the SAVE effort 


occured. 


That is pretty simple. I thought 
everyone knew that. To continue, 
if you inadvertently press the 
NMI- button you can recover from 
it without harm by pressing the 
ENTER key. Also, if you are 
trying to breakout of a program 
that is heavily protected, and 
the NMI- and A key routine does 
not work, try pressing the NMI- 
button and then press the 1 key; 
i. e. do an NMI- type save to a 
protected disk. You will get a 
“Protected disk” error report, 
and you will be back out of the 
lockup. Sometimes, depending on 
the nature of the protection the 
computer simply crashes and you 
get the Sinclair logo. I use 
this method particularly with 
Spectrum games, which for the 
most part are heavily protected. 


Don: I had never considered the 
use of the NMI- button so I 
guess I am not everyone. 


I have an idea to try out, since 
both the Larken and the Oliger 
use the NMI- button will it also 
work the same on the Oliger? 
It works with the Oliger except 
'that the A key does nothing but 
the 1 key will allow you to use 
the BREAK function and get "D 
Break - CONT REPEATS @:1". I 
don’t know if anyone ever gets 
lecked out but this is one way 
to recover. But here is a 


possible way out of a dilemma 
that would otherwise result in 
a loss of data. o/a. 


LKDOS vs JLO SAFE 


John Oliger's format predates Larry Kenney's, giving Larry the opportunity to 
build on it. As you can see, Larry added the IBM index mark which could make his 
disks readable using MSDOS, though only through ROM BIOS calls because there is no 
boot record recorded. Its value is questionable. 


John Oliger had a similar advantage from another source, but did not improve 
on it. The decision was made to use 512 byte sectors instead of 1624 byte five 
sector ISO MFM. It seemed like a good idea at the time, but nobody who wanted to 
develop a 2$68/Spectrum DOS was expert in disk drive technology. The 10 
sector/track 512 bytes/sector format became a de-facto standard. It is really 
quite unfortunate that this happened, but consider what it would have been Tike 
without any 2968 DOS at all. 

For reliability reasons, there is only enough room for nine 512 byte sectors 
on a double density disk. Gaps straddling data records build up splice marks with 
successive writes. Drive speed variations demand that gaps be a certain minimum 
size. Controllers need intact gap bytes before and after splices to allow them to 
detect and ignore them. Both formats above require equipment to be better than 
average. It is not unusual for available drives to give trouble, much more 
noticeable with LKDOS. 

Using five sectors of 1024 bytes each would require only minor changes in 
machine code and be invisible to the user, however, it would not be easy to 
reformat existing disks. New EPROMS would be needed. This does not seem to be a 
good answer. Ps 


John has an updated EPROM which increases the DATA gap acceptably. 


LKDOS uses software to FORMAT disks. | have revised this program for my own 
use for other reasons, so changing it so both system formats MATCH is “duck soup”. 
Actually, they need not match exactly. The new LKDOS format loses its IBM INDEX 
GAP, and ignores JLO SAFE's track sector stagger. The only observable effect is 
losing CRC errors. 


John originally used * to trigger the format editing error which he then used 
to bank switch his own ROM into low memory. Later he changed this to / because the 
2068 partially supports * in relic code, changing syntax error sensing locations 
and messages. Forcing errors so they can be trapped’ is an ancient trick with 
programmers, but it is only a temporary way to add new features. It should never 
be used for permanent functions. The change to / was symptomatic. 

Larry Kenney took a different approach. He created a bank switching command 
to replace error trapping. In away, *, /, and RANDOMIZE USR 19% are equivalent. 
bank switching instructions. They differ in convenience only as far as the user is 
concerned, though this is not true for special features each elected to supply in 
their EPROMs. Both systems work and have their followings. 


After formatting a disk, it is necessary to build a disk directory and File 
Allocation Tables (FAT) in track @. 

Both systems cambine the two, but in different ways (An expert would avoid 
simplification because of future problems). Both system authors pride themselves 
on this, yet both reap some of the problems caused by it. 


John Oliger structures his directory so it contains a pointer to the disk 
location of the named file. With only one pointer per file, files must be stored 
without gaps between them so their lengths can be determined. {it requires special 
attention when erasing files. Files must be rewritten to opened up space, and the 
directory updated. A file which expands enough to require another track must be 
renamed before it can be stored. These are the “wages of syntax”, a relatively 
smal] price to pay. - 


4 


Larry Kenney structures his directory so it contains a list of pointers for 
each named file. This permits holes to develop where files have been deleted. The 
list of pointers is consecutive unless holes are being filled. When this happens, 
files become fragmented, just as they do in MSDOS. 

Defragnenting and closing up holes requires disk to disk transfer, though one 
drive is enough to do the job. 

LKDOS has a file header system which JLO SAFE does not. It decreases the 
amount of data which can be stored compared with JLO SAFE, though not by much. 
Header information is placed at the beginning of every track, and same space is 
wasted at the end. There is enough data to reconstruct a corrupted directory. 

The header contains a CRC entry. Because disk controllers generate and check 
their own CRCs, there seems no reason to include this redundant feature. Larry 
explained to me that this is required for his RAMDISK, so the directory 
reconstruction ability is a convenient side effect. 


It would be foolish of me to expound on the merits of program features of each 
systen. They are different. It is nice to have both but switching between then 
isn't easy -- though L. Crawford of London Ontario has a setup you will find hard 
to believe. His MACRO keyboard deserves a review in itself. 

In closing, the 1776 controller was designed to be a cheap replacement 
controller. It is ... cheap. It replaces a set of chips and components without 
duplicating their performance. 

A respectable disk drive puts out a READY signal as soon as it is spinning 
fast enough to function correctly. Most reach this condition in less than one 
revolution of the disk. Of course, functioning implies a capable controller. 

The 177% ignores this signal. It isn't even attached. The reason is simple 
enough. It does not contain a phase-locked~loop to synchronize its clock with the 
disk bit rate. 

Instead, it contains the equivalent of a UART used with serial ports. By 
chopping a “frame” into smaller parts, you can change the size of a window in which 
an event (bit) occurs. That's why the 1770 requires a higher frequency clock. Like 
a UART it is set up for a nominal baud rate and cannot tolerate much deviattion from 
that rate. 
of nominal. Though this is no problem for! a phase-locked-loop, it is for the 177@. 
The penalty is the loss of many seconds when you use your disk a lot. : 

Even though John Oliger has done a remarkable job getting the best fran the 
1770, it is slow with respect to an IBM clone controller card which doesn't have to 
wait 5 revolutions before starting operation. 


MECHANICAL AFFINITY AD 


For the best prices on items for your Timex or Sinclair line we 
ask that you give us a chance to fill your order here in the 
Americas, both North and South and all in between. Contact Frank 
Davis at MECHANICAL AFFINITY, 513 EAST MAIN STREET, PERU, IN 
46970, or contact Paul Holmgren at MECHANICAL AFFINITY, 5231 
WILTON WOOD CT, INDIANAPOLIS, IN 46254. All prices are in US 
Dollars, and we do not accept charge cards. 

TS2068 COMPUTERS FOR $50, includes manuals and cables. 

TS2040 PRINTERS FOR $40, includes extra thermal paper. 

TS2050 MODEMS FOR $35, includes software. 

DOCK PORT SPECTRUM EMULATORS FOR $25. 
We hope to be of service to you. All items listed include 
postage within the continental USA. For out of the USA, please 
include $5 to cover the total shipping. Catalog available on 
request. Thank you. 


3 


SINCLALR PUBLICATIONS, 2ND LOOK 


by ELIAD P. WANNUM 

Last issue I told you we would be looking at some of the 
newsletters of North America, so here we be. I also mentioned 
that I would hold off on subscribing to QL World, as at that 
time they had an uncertain future. It appears we can rest 
assured for now that OL World will be around for awhile, it was 
bought by what seems to be capable hands and is still 
publishing. Now let us see what we have in the way of news from 
Sinclair Clubs and Groups. 

For QL users we have the NESOLUG News, % P.O. Box 8763, 
Boston, MA 02114. Seems to be bi-monthly and is edited by Peter 
Hale of EMSoft. Annual membership is $10, $5 for students, and 
$15 out of North America. 

FDD Newsletter for the Zebra Disk Drive System, is edited by 
Jay Siegel, 1274 49 St., #821, Brooklyn, NY 11219, Phone 718 
853-7521. A good mix of hardware, software and CPM coverage. 

QZX, the Journal Covering Amateur Radio and Sinclair 
Computers. That is quite a mouth full, but just what you’ get 
from this long running newsletter edited by Alex F. Burr, K5XY, 
2025 O'Donnell Drive, LaS Cruces, NM 88001. $15 a year for 12 
issues. This is not just for ham radio operators. 

SINC-LINK, edited by Jeff Taylor of the Toronto 
Timex-Sinclair Users Club, 14 Richome Court, Scarborough, 
Ontario, M1K 2Y1. The largest newsletter put out by any North 
American club or group. It has very heavy emphasis on the Larken 
interface for the TS2068, good support for the TS1000, and above 
average QL coverage. No coverage of the 288. Newsletter 
subscription alone is for $12, and full membership is $20 a 
year. Good use of Print Factory on the TS2068 for graphics. 

The RAMTOP, is published quarterly, and is edited by Thomas 
Simon, 615 School Ave.,Cuyahoga Falls, Ohio 44221. It is the 
publication of the Cleveland TS Users Group. No mention of rates 
for those wanting to subscribe. Covers TS1000, PC, QL and 
TS2068. 

SWYM, the newsletter for SEATUG, is edited by Chuck 
Kereluck and can be subscribed to by sending $10 to Dave 
Battershill, P.O. Box 64462, Tacoma, WA 98464. Seems to cover 
all but the Z88. 

ISTUG, the newsletter of the Indiana Sinclair-Timex Users 
Group is edited by Frank Davis and assistant editor Mike 
Felerski of desk.top publishing fame. It covers mainly the 
TS2068 and QL, but has occasional coverage for the Z88 and _ the 
TS1000. Newsletter subscriptions for non-members are $9 a year 
and can be obtained from ISTUG, 513 East Main, Peru, IN 46970. 

THE PLOTTER, is the newsletter of the Clackamas Computer 
Applied Training Society, 1419 1/2 7th St., Oregon City, OR 
97045. It is edited by Dick Wagner and is heavily contributed to 
by Rod Gowen of RMG. Subscription is by membership and is $20 a 
year. It covers all of the Sincalir computers, except the Z88. 
It also covers the PC, and IBM compatible shareware. 

CATS Newsletter, the journal of the Capital Area 
Timex/Sinclair Users Group, is edited by Tim Swenson. It 
supports all of the Timex and Sinclair computers and a 
newsletter subscription can be obtained for $12 a year from 
CATS, P.O. Box 11017, Takoma Park, MD 20913. 

For the Z88 user to get full coverage he can subscribe to 
Z88 EPROM, % Roy Woodward, Z88 Users Club, 68 Wellington St., 
Long Eaton, Nottingham NG10 4NG. Rate for a subscription is 
unknown at this time, but I have seen some excellent back 
issues. Resembles the QUANTA format of magazine/newsletter. 


*EXTRA* *EXTRA* 
BACK ISSUES OF UPDATE MAGAZINE 


For those who are new to UPDATE and want to be able to get 
back issues that they may have missed, we will be offering the 
following for a short time only. This offer is good only till 
the end of July 1992. Any one back issue for only $4.50, or 4 
issues for $16.00. We have available the following issues. 


October 1991, July 1991, April 1991, January 1991, October 
1990, April 1990, January 1990, October 1989, July 1989, 
April 1989, January 1989 and April 1988. 


If ordered, these will be sent to the requested address by 
first class mail. From what we last heard from Bill Jones he did 
not indicate that he had any more back issues from when he was 
publishing UPDATE, so I assume these are the last issues 
available, other than by buying used copies from friends. 

Now of course you may start or renew a subscription to 
UPDATE at any time and receive all of the back issues of the 
year in which you started the subscription. We may once in 
awhile be a week or two late getting the magazine out,but we 
will not leave you in the lurch like some have in the past. 

We also have available for you copies, 2nd Edition, of the 
QL Survivors Guide, for $10.95 postage paid. Find out where the 
hardware, books, software,repair facilities, user groups and 
Magazines are that cover the QL worldwide. , . 


LATE BREAKING NEWS ABOUT COMPUTER MONTHLY 


I just got a call from Bill Ferrebee, who writes the TS 
Column for Vulcans Computer Monthly. They told him that after 
the June issue they were going to be going to a strictly IBM and 
MAC format. Shades of Computer Shopper!!! This means that they 
will be dropping all of the Classic Computer coverage, from 
Commodore 64 to TI99, and us included. They will also be 
dropping the Amiga and Atari ST. Bill said this was a decision 
made by the owners of the company and not by the Editor or 
staff. I am not sure if it would do any good to let Vulcans know 
what we feel about this, but I am going to do so anyway. They 
seem to have hit me on all of my computers, from my QL to my 
Amiga and all in between. Speaking of the Amiga, I have the 
latest version of the QL Emulator for the Amiga. I plan to give 
a write up on this software in the next issue, and possibly the 
Spectrum emulator for the Amiga. I also have a Commodore 64, 
Atari ST, Mac and IBM emulator for my trusty Amiga. It is a nice 
computer except for the Workbench and CLI environment on it. It' 
is great for emulating, but not all that hot for use as an Amiga 
if you are a programmer. It uses huge amounts of memory for 
screens and for many of its programs. I have a few programs that 
require 3 meg of memory as a minimun! Having weaned myself on 
computers such as the PDP 8 and 11 and the ZxX81 I learned to 
conserve memory. Is this the wave of the future of computing? 

One last note for all of you. You have only one more issue 
before it is time to renew again. Write and let us know if you 
want us to continue with UPDATE. It took a long time for most of 
you to get your renewals in the last time, and frankly I find 
that to be discouraging. All but a few ended up renewing. 


U 


A. Looking For 


Productse 


If so, look no further'!! 
We have the LARGEST stock of h/w & 
s/w for the T/S line of computers 
ANYWHERE IN THE WORLD! 


For a catalog and price list call or write: 


(ils ENTERPRISES 


1419 1/2 7TH STREET 
OREGON CITY, OR 97045 
503/655-7484 NOON-10PM PT T-S 
FAX: 503/655-4116 
VISA/MC/CK/MO - $3.50 (REFUNDABLE) 
(STATE COMPUTER MODEL FOR PRICE LIST) 


Y Times 


SAE eb. 


Abed Hahale, 335 W. Newport Rd. HoffHan Estates, IL 60195 


Since my last article on the Tandy 
DMP1@5 printer, modifications were made 
to screen dump 4 times the normal size 
to about a Ralf page worth. Also the 
print head is now controlled so it can 
plot to any location on the page. In 
this case, the font style controls the 
widths ELITE (12 CPI) & Expanded was 
used below. One half the vertical pixels 
i The 
program should be aplicable to other 
printers with proper modifications. 
To obtain a negative (inverse video) or 
vice versa add NOT. NOT POINT(C,R-xx) 


1 REM TANDY DMP1@5 PRINTER DRIVER by Abed Kahale 1/92 

28 RANDOMIZE USR 188: OPEN #3,"LP* 

38 RANDOMIZE USR 188: POKE 16872,8: REX No line feed (oth 
erwise double spacing) 

5@ RANDOMIZE USR 100: 
sent to printer. 

88 LPRINT CHR$ 27;CHR$ 23;CHRS 27;CHRS 14; CHRS 18! REM E} 
ite, Expanded (Elongated!) & Graphic mode. 


POKE 16893,32: REM LPRINTs & CHR$s 


Font by ZUNK 
BSDLPRINT CHR$ 1@SREM Line feed. 


9@ LPRINT CHRS 273CHRS 16;CHRS @sCHRS 35: REM Locates head 


(nargin) at 35 pixels from the left. 
95 RANDOMIZE USR 108: LOAD "C.C$*SCREENS 


155 FOR Y=@ TO 175 STEP 4: LET R=175-¥: REM vertical pixels 


3 tacken twice for 8-pin head. 

168 FOR C=8 10 255: REM Horizontal pixels. 
178 LET B=@ 

188 LET B=B+POINT (C,R-.5)! REM 
198 LET B=B+2#POINT (CyR-1)! REM » 
208 LET B-B+4#POINT (C,R-1.5) REM 


divided by 2 


218 LET BeBHG#POINT (CyR-2)2 REM . ‘J 

228 LET B=B+ib#POINT (C,R-2.5)2 REN * * 

28 LET B=B+32"POINT (CyR-3)? REM . ' 

248 LET B=B+S4ePOINT (CyR-3.5)2 REN . : 

Be LET B=B+128 

ZS IF IN 127(>236 THEN G0 TO 255: REN thecks if READY. 
268 LPRINT CHRS By 

278 NEXT € 


288 LPRINT CHR$ 27;CHR$ 9OsCHRS @: REM carriage return. 
298 NEXT Y 

WO LPRINT CHR$ 38: REM Back to character aode. 

328 STOP 


DISK OPERATING SYSTEMS 


Histenicatty computer disks augmented on replaced magnetic tape reeks 
E Ante. ot Lo and fhattoned. The Loop was fastened 
Eseonttatly, a eae ae! a Loop eres op 4 gn 


dated , able head L heads. In the i 
accomne a mov waugk neo Bead niet 


ALAQNLY » SOY Q@ singhe Earky ”. "which 
Le eiolaste tid Ce top ae Sotdon Sinfoat: Head Loading the 
opposite of the familiar d and heads 
The addressing method for stack drives 44 universal. The teuns volume, 
Rinder, track anid sector ane. ah dexived sao then, though there 44 some 
needs Sere nat times. There were also drives in the foun of a 
aun gud ey ti tntex many heads hor fast mainguamne computers. 


VOLUME This genenakly refers to a Lump of sAtowge you can cwvy around. When 
the Lum AGUTe. 


checking It doesn’t imply any 
L 04 storage or an address. It could even be a book 
given moder recognition technology. 


CYLINDER A track on one side of one disk Lines up with corres; ponding ones on 
every other disk and avaikabke side. Together they define 
Cylinders are numbered 40m the outside edge umard. RAS ds (OT An 
track number. See why 4n a moment. 


HEAD This is either specigiod on Anckuded dmplicithy in SIDE. Usuakly, but 
not a pungs feeds BAe fumbered fom bottom to top OM nemavable stack 06 
7 disks woukd have six pairs of Senditive surfaces aces and Six pairs of 
heads. Heads would be numbered htt. Fora 2 disk cakiper stack 
(aml hand drive), they number grom O wh 3. 


"SIDE" When there onky one disk in the “stack, to neher to SIDE 
speed of Feb. ean be confusing 4 ou Coen ger they ave different 


"TRACK" With a single sided dish TRACK is the same a4 CYLINDER. Adding a 
second side introduces ami alt you use TRACK and SIDE together, 
TRACK and CYLINDER NUMBERS mat. 
Some dish systems treat even. Tea numbers to be on SIDE 6 and odd 
numbers to be on SIDE 1. Oh _bo Let's stick with DEVICE (DRIVE), 
VOLUME, HEAD, CYLINDER and SECTOR and save us some headaches. 


1 we tath about TRACK as a physical storage unit, there i4 no problem. 
It wa ver usefuk teun, meaning a continuous peace to record with no 
breaks, only ends. Poor esig ny eetg AP wee ny oF ar 


=~7 CYLINDER 


a 


SECTORS 


=< 7 
a 
ee 
= or} 

r wen 3 
———_—_f PRONTO ‘a 2 


\ 


ARCHIVE made easy 
(c)1984 PSIOW LIMITED 


by A. Hradesky 


According to Webster's Ninth New 
Collegiate Dictionary, "“data- 
base n (1967): a collection of 
data organized especially for 
rapid search and retrieval (as 
by a comuputer)". 


According to the QL User Guide, 
"QL Archive is a database 
program which enables you to 
create filling systems for any 
type of information you choose" 


As many of you know, QL-Archive 
(QLDB) is one of four programs 
given free with the purchase of, 
a Sinclair QL. It is perhaps 
the most difficult of the three 
to program (but not to use). The 
everso powerful command 
structure and programming 
language within Archive can give 
the 'un-taught’ user many fitful 


moments. 

Before starting, the program we 
will be using comes straight 
from the QL User Guide (Chapter 
10, page 21) and therefore is 
directly aimed towards the new 
user. This tutorial, will 
hopefully enlighten non-Archive 
users to realize the potential 


they have when given the proper 


tools for programing (like 
Archive). 
We will, however, be giving the 


particular program somewhat of a 
face lift. A few tricks learned 
from QL World magazine will be 
used to give our program some 
flare. 


First, let us start by creating 
a card index (Rolodex??)>). "An 
Archive file behaves rather like 
a card index. A real card index 


V1 


consists of a box containing a 
set of record cards, each card 
contains various items of 
information”. In this case, the 
box’ represents the most 
important part of any data base, 
the data base file (DBF) 
Technically speaking, without 
the DBF, there really would not 
be any data base. The, DBF 
contains all the pertinent 
information which the data base 
program uses. 


Load Archive as per the QL User 
Guide (versions 2.01, 2.30, 
2.30RTM, 2,38 and 3.87 Turbo are 
all supported). To 'CREATE!, the 
DBF, we must first specify all 
the fields each record will use. 
To accomplish this, enter the 
following as shown: 


CREATE "mail” <PRESS ENTER> 


This places you in sort of a DBF 


editor. Archive expects you to 
input the titles of every field 
needed for your DBF, Knowing 
this, enter the following: 
TITLES <PRESS ENTER> 
FIRST_NAMES <PRESS ENTER> 
LAST_NAMES <PRESS ENTER> 
+ ADDRESSS <PRESS ENTER> 
CcITY$S <PRESS ENTER> 
STATES <PRESS ENTER> 
ZIP_CODES <PRESS ENTER> 
TELEPHONES <PRESS ENTER> 
ISSUES_DUE <PRESS ENTER> 
MONTH _DUES <PRESS ENTER> 
YEARLY _DUESS <PRESS ENTER> 
PAYMENT INFOS <PRESS ENTER> 
USERGROUPS <PRESS ENTER> 
When all typed in and complete, 
press <ENTER> to activate the 
*ENDCREATE’ command. This will 
notify Archive you have finished 
your input to create a DBF 
(which you've just created). 
Please take note, your DBF is 
presently open and will remain 
so until you 'CLOSE’' it. The 


To view your newly created DBF, 
type ‘DISPLAY’. You will see a 
blank record with just the field 
names. Upon closer scrutiny, 
you will notice the field 
ISSUES_DUE does not have a '$' 
following it. To Archive, the 
'$' represents an open string. 
This means you can mix 
characters and numbers all on 
the same line. Without the ‘S$’, 
Archive expects numeric values 
only. 


fields that 
The TITLES 

official 
Mrs, etc. 
represents 


Let us explian the 
represent your DBF. 
field is designed for 
titles, ie Dr, Mr, 
The ISSUES_DUE field 
the total number of issues 
(newsletters) due the member. 
The MONTH DUES gives the month 
and year the member needs to 
renew his/her membership. The 
YEARLY _DUES$ is used to display 
the amount paid by the member 
for his/her membership. To 
record the check number, cash 
amount, date received, etc, the 
PAYMENT_INFOS field is used. 
Finally, the USERGROUPS field 
allows information about members 
who live outside the local area 
and just pay dues to receive the 
newsletter. Normally, these 
members officially belong to 
another group. 


must be 
* CLOSE’ 


I am sure your fingers 
getting antsy, so let's 
our DBF and begin designing the 
mailing list program (type 
‘CLOSE’ and press ,<ENTER>). 


The following requirements are 
needed to accomplish our goal: 


Add a new member to the DBF 
Output all records to printer 
Record membership payments 
Modify a members record 
Delete a members record 
Order the DBF 

Exit/Quit the program 


12 


explaination of each procedure 


module is best described within 
the QL User Guide. Type 'EDIT' 
and press <ENTER> to input 


the listing given. Follow the 


instructions. 


The procedure 'BORder’ gives us 
an ASCII border around the main 
menu by using 'CHR(XX)’ codes. 
It was mentioned in QL World 
that Archive has this available. 
However, the author stated he 
could not find documents to 
support this except in PSION's 
PC-FOUR program (IBM’s version 
of the QL’'s bundled software AND 
it costs almost $100.00, hah!). 


So, he experimented and found 
the coding was duplicated within 
the QL's version of Archive. 
Even though the affect is the 
same, the ASCII characters do 
not corespond to the ‘CHR’ 
numbers. Plus, the IBM ASCII 


character set is only half given 
for QL-Archive. But this does 
not stop us from (ab)using it. 


The SCR procedure allows a 3-D 
or shadowing effect. The shadow 
will of course display as black. 


The actual paper with the menu 
will be colored red. And the 
background will show as green. 
If you do not like the green 
background, change the 'CHR<«4)' 
in the first line to ‘'CHR<7>' 
for white (‘also alter the REM 


statement to reflect the change) 


The WINDOW procedure really is 
sort of a clear screen (or clear 
window). The CHR(12) gives a 
form feed. The command line 
before it makes sure the window 
remains red in color. 


When your program is all typed 
in, do not forget toa save it 
While in the procedure 'EDIT' 
mode, press <ESC>, then enter: 

<PRESS ENTER> 


SAVE "MAILLIST" 


prac BORder 
print tab 8; chr (234); chr (4) +chr(231)+chr (40); chr (226) 
print tab 6;chr(235);chr(4)+" "+chr (40)+chr (235) 

2,19;"TIMELINEZ MEMBERSHIP” 
print tab 6; chr (230); chr ¢4)+chr(231)+chr (40); chr (225) 


print 


let A= 


at 


10) 


while A<il 
print tab 8; chr‘235);chr(4)+" 


let A=At+1 


endwhi 


le 


"+ohr (40); chr (235) 


print tab 6; chr (227); chr(4)+chr(231)+chr (40); chr (233) 


endpro 


prac bye 


close 


ic 


print "bye" 


paper 


0 


mode 8,0: 


stop endproc 


endpro 


ic 


proc change 


rem **kk*k*k alter record 


let n$="x" 


cls 


while n$<>"'" 


getrec 


if ok$="y" 


alter 
paper 
endif 
endwhi 
endpro 


2: 


le 
ic 


els 


proc choose 


rem *X**kk choose an option *kKKK 


print 
print 
print 
print 
print 
print 
print 
print 
print 


endpro 


at 
at 


at 


ic 


els 


FORK 


4,15;"SELECT OPTION" 


6,18;"CAldd a member” 


7,18;"€Diespatch to printer" 


8,16;"( Play on account” 
9,16;"€Clhange a record’ 
10,18;"€Wlipe a record” 
11,18;"COlrder a file’ 
12,18;"CQluit program’ 
14,15;"CHOICE? "; 

let choice$=lower (getkey()> 

if choice$="a": 
if choice$="d": 
if choice$="'p" 
if choiceg$="c": 
if choice$="w" 
if choiceg="0": 
if choice$="'q": bye: 


insert 


endif 


window: BORder: 
despatch: window: BORder: 
pay: window: BORder 
change: window: BORder: endif 
: wipe: window: BORder: 
order last_name$;a: update 


endif 


endif 


endif 
endif 


: window: border: 


endif 


proc despatch 
els 

all 

dolabel 
endall 
endproc 


proc dolabel 

rem ***k*kxk print labels ****KK 

if issues_due 

if issues_due=1 

doline;"REMINDER - Subscription Now Due" 
else 

doline;""" 

endif 

doline;" "+month_dues 
doline;titleSt+" "+first name$+" "+last_name$ 
doline; address$ 


doline;city$+", "+stateS+" "+zip codes 
let issues_due=issues_due-1 

update : 

endif = 
endproc i 


proc doline; x$ 
lprint x$ 
endproc 


proc getrec 
rem ***kk locate a4 particular record *k*k* 
els 


let ok$="'n" 

input "who? ";n$& 

if n$<>"" 

find n$ 

while ok$<>"y" and found > 

print = 

print title$;" ";first_name$;" "; last _nameS 
print address$ 

print : - = 


print "OK C¢y/n)? "; 
let ok8=lower (getkey (©) 
cls 

if ok$<>"y" 

continue 

endif 

endwhile 

if not found 

print 

print n$;" not found" 
endif 

endif 

endproc 


14 


Proc pay 

rem *kxk** record subscription payment *kkKk 
cls 

let n$="x" 

while n&$<>"""' 

getrec 

if okg="y" 

let issues due=issues_duet6 
update 

endif 

endwhile 

endproc 


proc SCR 

print chr(2)+chr (4): REM GREEN PAPER 

print chr(12):REM FORM FEED = GLS 
print chr(20)+chr(12)+chr (4) +chr (69) +chr (21) 
print chr(2)+chr (0): REM BLACK PAPER 

print chr¢12): REM FORM ‘FEED 

print chr (20)+chr (10)+chr (3) +chr (67) +chr (20) 
print chr(2)+chr(2): REM RED PAPER 

print chr(12):REM FORM FEED 

endproc 


proc start 

rem ***kkxX start procedure k*kXk** 
mode 0,0: cls 

ink 7 

SCR 

BORder 

open "mdv2 mail" 

while 1 

error choose 

let n=errnum() 

ifon 

print "Mistake - Press any key to continue” 
let m$=getkey( 

endif 

endwhile 

endproc 


proc window 

print chr(2)+chr (2) 
print chr (12> 
endproc 


Specialists in High Quality Software and Peripherals 


E.E.C. LTD. 


18-21, Misbourne House, 
Chiltern Hill, 
Chalfont St. Peter. SL9 QUE 


Fax No 0753-887149 


Telephone 0753 888866 
(USA calls. 01144-753-868866) 
Telex 849041 SHARET G 


Bill Richardson 

' Minst 
Chairman and 
Managing Director 


proc wipe 


rem **kkx delete non-paying subscribers *x**xx 


cls 

display 

select issues_due=0 
all 

sprint 


print at 15,0;"Delete Cy/n)? "; 


let ok$=lower (getkey()) 
print okf 

if okg="y" 

delete 

print "DELETED"; tab 15 
else 

print tab 15 

endif 

endall 

reset 

endproc 


Put some punch in your 
PRINT AR fe gray eile 


Digitized Misc. Sports Funny 
Computers Animals 
Zodiac Signs 
Food Holidays 
Xmas Transportation 
Xmas 


Over U different large & smatt 
praphics in each col 


$12.95 ppd each, $19.95 ppd for two, or 
all three collections for $26.95 ppd 
[Check or money order only.] 

Available on tape or 5 1/4" DSDD LARKEN 


or OLIGER disk - please specify. 
+ | Send order to: =) 


John McMichael, 1710 Paimer Dr. 
Laramie, WY 82070 


Dear PRINT FACTORY user, 


Three all-new graphic 
collections are now available 
for the Print Factory 
programs: 

COLLECTION #4 - Misc., and 
Digitized Misc. 

COLLECTION #5 - Men/Boys, 
Women/Girls, Male Faces, 
Female Faces, Sports, 
Holidays. 

COLLECTION #6 - Funny, Xmas, 
Animals, Transportation, 
Computers. 


Available on cassette, or 5 
1/4 DSDD Larken or Oliger 
disk, please specify when 
ordering. NEW PRICES: 
Collection #1 - #6 are now 
just $7.95 each and this 
includes ist class postage 
paid. 

ALSO 
FOR SALE: extras--10 year 
accumulation of excess 2X81, 
TS1000, TS1500 and TS2068 
computers, hardware, software, 
books and magazines. For 3 
page list please send SASE to 
John McMichael, 1710 Palmer 
Dr., Laramie, WY 82070. 


16 


Oh No! Not Another Interest Computation Program! 


Once upon a time a few idle hours I did find. Oh me! Oh my! What to do? Well why 
don’t I try this copy of IBMCOPY that has been sitting here. Ok, now that I have 
it fired up, what am I going to try it on. Well, since I can’t use the bulk of 
the IBM type of software I might try a BASIC program. Out went the word, I need 
a victim! One of my scouts returned with a program to compute loan interests + 
AND a book on the version of BASIC it was written in. 


My first task was to see if I could make it work with the OL. I achieved that 
goal. But, the program did not seem to have any flash, verve, it was so plain. 


With out making too many changes to the basic concept of the program I began 
to look at things I could try that would make the program easier to run and 
nicer to look at. : : 


One of the things I learned is that I STILL like SuperBasic. The other 
lesson I discovered is that even in the IBM world, program writers do not always 
use good programming techniques. ! 


The program is pretty much straight forward, just follow the prompts, and the 
directions as they appear on the screen. 


I intentionally did not make major changes in the basic structure of the 
program. The primary goal was making the conversion process work. All facets 
of the IBM Basic were translatable in this program. Toolkit did make the 
process easier. 


One of the nicer things I was able to achieve was the appearance of a 
“window” for the directions for the various steps where you enter information 
in response to the prompts. The math did check out to be a little better then 
a PC with out a math co-processor. : : 


100 REMark your P. C. Mortgage Aid, using ToolKit 2 
110: 
120 WINDOW 488,240,20,0 : OPEN #4,scr 224x94a122x130 : MODE 8 
130 CSIZE 3,1 : CLS :; AT 2,8: PRINT "Your Computer" 
140 CSIZE 1,0 
150 AT 9,9 
160 PRINT “Mortgage Aid" 
170 PRINT \ ,"_ QL Version " 
180 AT 19,1 : PRINT “Press space bar to continue" 
190 IF INKEY$ <>" " : GO TO 190 
200 MODE 4 
210 DIM loan(500,2) 
220 GO SUB 280 
230 
240 7 
250 IF [$="1" : GO TO 500 
260 GO TO 220 
270 GO SUB 460 
280 REMark -MAIN OPTION MENU 
290 CLS : PRINT TO 22;" MORTGAGE ANALYSIS " 
300 AT 3,8 : PRINT “OPTIONS - " 
310 PRINT ,,"1 - Mortgage Payment Comparisons " 
320 PRINT ,,"2 - Mortgage Amortization" 
17 


330 
340 
350 
360 
370 
380 
390 
400 
410 
420 
430 
440 
450 
460 
470 
480 
490 
500 
510 
520 
530 
540 
550 
560 
570 
580 
590 
600 
610 
620 
630 
640 


660 
670 
680 
690 
700 
710 
720 
730 
740 
750 
760 
770 
780 
790 
800 
810 
820 
830 
840 
850 
860 
870 
880 
890 
900 
910 
920 


PRINT ,,"ESC KEY - EXIT" 

PRINT \,, "OPTION NUMBER (1,2, OR ESC) =====>"\ 
CLS #4 : BORDER #4,2,4 

PRINT #4;" MORTGAGE PAYMENT COMPARISONS" 


PRINT #4;" - Use This Option To Compare" 
PRINT #4;" The Monthly Payments Of" 

PRINT #4;" Mortgages At Various Rates" 
PRINT #4;" And Principal Amounts." 

PRINT #4;" MORTGAGE AMORTIZATION" 

PRINT #4;"  - Use This Option To Calculate" 
PRINT #4;" The Principal And Interest" 
PRINT #4;" Paid Over Any 12 Month Period." 
AT 8,51 

I$=INKEYS 

IF I$=""_: GO TO 460 : ELSE : PRINT I$; : RETurn 
CLS 

PF = AF*(RF/(1-(1/((14RE)ANF)))) > RETurn 


REMark MORTGAGE COMPARISONS 

CLS : PRINT " MORTGAGE PAYMENT COMPARISON PROGRAM " 
CLS #4 : BORDER #4,2,4 & 
PRINT #4;" MORTGAGE PAYMENT COMPARISONS" 


PRINT #43" - Use This Option To Compare" 

PRINT #4;" The Monthly Payments- Of" 

PRINT-#4;" Mortgages At Various Rates" 

PRINT #4;* And Principal Amounts." 

PRINT #4 

PRINT #4;" NOTE: To Select A Value Or Amount" 

PRINT #4;" Enter The Appropriate Value" 

PRINT #4;" And Press The ENTER Key." 

AT a : INPUT “ENTER BASE MORTGAGE AMOUNT ===> ";A$ 
A=A . 

IF A <= 0 : GO TO 600 

AINC = 2000 

AT 4,1 : PRINT TO 38 

AT 5,1 : PRINT "(1 TO 35 PERCENT)"; 

at ore INPUT "ENTER BASE INTEREST RATE = ====> "3 IRS 


IF IR>35 OR IR<1 : GO TO 660 

R = IR/1200 : RINC = 2.5E-3/12 

AT 5,1 : PRINT TO 38 7 

AT_5,1 : INPUT "ENTER NUMBER OF YEARS IN MIG (1 TO 35 YEARS) =>";Y$ 


N = Y$ * 12 

NF =N 

IF NF>420 OR NF<1 : GO 10 720 

CLS 

PRINT “ MONTHLY MORTGAGE PAYMENT COMPARISONS " 


AT 3,10 : PRINT Y$;"-YEAR MORTGAGE LOAN AMOUNTS"; 


AT 5,6 : PRINT "RATES",,," "3A;".00" 
FOR I = 0 T0 14 

AT 6+1,0 

pu(INT(((R+(1*RINC) )*120000)+.5)/100) 


RF = R+I*RINC : AF=1 : GO SUB 490 

P = INT(((PF*(A) )+5.000001E-3)*100)/100 

IF P>10000 : AT 22,1 : PRINT "PAYMENTS TOO LARGE TO DISPLAY" : GO TO 900 
AT 6+1,29 : pu(P) 


END FOR I 

PRINT 

PRINT .. "PRESS SPACE BAR TO CONTINUE" 
IF INKEY$ <>" " : GO TO 910 

GO TO 220 


18 


930 REMark - mortgage amortization 

940 CLS : PRINT,,, " MORTGAGE AMORTIZATION PROGRAM " 
950 CLS #4 : BORDER #4,2,4 

960 PRINT #4;" MORTGAGE AMORTIZATION" 


970 PRINT #45" - Use This Option To Calculate" 
980 PRINT #4;" The Principal And Interest" 
990 PRINT #4;" Paid Over Any 12 Month Period." 


1000 PRINT #4 
1010 PRINT #4;" NOTE: To Select A Value Or Amount" 


1020 PRINT #4;" Enter The Appropriate Value" 
1030 PRINT #4;" And Press The ENTER Key." 
1040 AT 2,0 


1050 INPUT "ENTER MORTGAGE AMOUNT = 
1060 AF = A$ 

1070 IF AF <= 0 : GO TO 1050 

1080 INPUT "ENTER INTEREST RATE (1 TO 35 PERCENT) =====> *;IR$ 
1090 IR = IR$ 

1100 IF IR<1 OR IR>35 : GO TO 1080 

1110 RF = IR/1200 » 

1120 INPUT "ENTER NUMBER OF YEARS (1 TO 35 YEARS) =====> ";Y$ 

1130 NF = Y$ * 12 

1140 IF NF<1 OR NF>420 : GO TO 1120 

1150 a SUB 490 

1160 PF = INT((PF+5.000001E- 3)*100)/100 

1170 PRINT “MONTHLY PAYMENTS ARE = 
1180 PRINT "CALCULATING AMORTIZATION 

1190 loan(0,1) = 

1200 FOR I = 1 TO NF 

1210 loan(1,2) = INT((loan(I-1,1)#RF+5.000001E-3)*100) /100 
1220 loan(I,1) = loan(1-1,1)-PF+loan(1,2) 

1230 END FOR I 
1240 FOR I = 6 TO 23 : AT 1,0 : PRINT TO 77 , 


1250 AT 7,9 

1260 PRINT "- 1 TO ";NF; " - 0 TO END AMORTIZATION" 

1270 AT 6,1 ee "ENTER BEGINNING PAYMENT NUMBER OF 12 MONTH PERIOD ====== > 
3 PERIOD: 


1280 PD= PERIODS 

1290 IF PD <> 0 : GO TO 1320 

1300 IF PERIOD$ <> "0" : GO TO 1270 
1310 GO TO 220 

1320 IF PD<O OR PD>NF : GO TO 1270 
1330 AT 6,1 : PRINT TO 70 

1340 AT 7,1 : PRINT TO 70 


1350 AT 7,1 
1360 PRINT "PYMNT PRINCIPAL INTEREST BALANCE" 
1370 TINT = 0 


1380 FOR I = PD TO PD+11 

1390 IF I> NF : GO TO 1420 

1400 TINT = TINT + Joan(1,2) 

1410 PRINT_USING "“### "31; : pu(PF-loan(1,2)) : pu(loan(1,2)) : pu(loan(I,1)) 
1420 PRINT : END FOR I 


1430 PRINT \ "INTEREST FOR 12 PERIODS ="; : pu(TINT) : PRINT 
1440 PRINT \,,,"PRESS SPACE BAR TO CONTINUE"; 

1450 AT 0,0 

1460 IF INKEY$ <> """ : GO TO 1460 

1470 GO TO 1240 

1480 : 


1490 DEF ine PROCedure pu(x) 
1500 PRINT_USING " ######. ##"5x; 
1510 END DEF ine 


19 


BOOTSORT WITHOUT TK2 


The following version of the selective 


menu-loader (BOOTsortCOPY) may be used 
without initializing TK2. It automati- 
cally shows only Basic titles (any 
without _ext) in sorted order. It does 


not have the COPY feature but responds 
more quickly and may be useful as a boot 
routine on disks which have both Basic 
and data files. MDV users should change 
RAM1_ to drive$ and line 240 flp to mdv. 


BOOT sortBAS 


1@ MODE 4 

2@ FLP_USE fip 
36 GO SUB 226: REMark Create DIR file 

4@ REMark Display menu 

5@ PAPER @: INK 7: CLS: PAPER #@,7: INK 
#6,:-CLS #6 

6@ OPEN_IN #7,’RAM1_” & ’cat_dat’ 

7@ INPUT #7,line$: CLS: PRINT ’CATALOG-’ 
;line$,: INPUT #7,line$: PRINT line$ 

86 CLOSE #7 

9@ PRINT #@\\’ Key any CHR to scroll] E 
NTER to load’\’ N for NEW CATALOG £ for 
SDATE: ’;DAY$;’ ’;DATE$ 

108 LET F=1: x=7: Y=2: C=INT(FI/18): DIF 
SINT ((FI/18-C)*18+.4): row=1: lop=17 
11 LET Q$=’p’: IT=2: IF lop>=FI THEN lo 
p=FI: GO TO 138 

12@ FOR I=1 TO C: FOR m=@ TO lop: AT row 

+m,7: PRINT ,,,: AT rowtm,8: PRINT f$(IT 
): LET IT=IT+1: NEXT m: GO SUB 16%: NEXT 
I: FOR I=1 TO 19: AT I,7: PRINT ,,,: NE 
XT I: IF NOT DIF THEN GO TO 118 

138 IF F THEN FOR m= TO DIF-2: AT rowtm 
>?: PRINT ,,,: AT rowtm,8: PRINT f$(IT): 
LET IT=IT+1: NEXT m: IF lop>=FI THEN F= 

® 

14@ IF NOT F THEN IT=FI 

1§@ GO SUB 168: GO TO 118 

16% FOR L=@ TO m: AT rowt+L,7: PRINT 7>’: 
FOR k=1 TO 5: NEXT k: IF Q$<>’’ THEN FO 

R k=1 TO 198: NEXT k: LET Q$="’ 

17 LET A=CODE(INKEY$): IF A=@ THEN LET 

Q$='p’: GO TO 176 

186 IF A=96 THEN CLS #9: INPUT #2;’mo ’; 

mm;’ da ’;dd;’ year ’;yy\’hr ’s;hr;’ min 
’;min: sec=@: SDATE yy,mm,dd,hr,min, sec 
GO TO 40 

19% IF A=78 THEN GO SUB 228: GO TO 48 
200 IF A=1% THEN GO TO 21%: ELSE AT rowt+ 
L,7: PRINT ’ ’: NEXT L: RETurn 
218 LET POS=IT+L-m-1: END IF : 


drive$=dr 


20 


ive$ & f$(POS): LRUN drive$ 

226 CLS #@: PRINT #0; *CATALOG drive #’; 
238 drive$=INKEY$: IF drive$<’1’ THEN GO 
TO 238: ELSE PRINT #@;drive$ 

240 drive$='flp’ & drive$ & ’_’ 

250 DELETE ’RAM1’ & ’ cat dat’: OPEN NEW 
#7,’RAM1_’ & ‘cat dat’ 

260 DIR #7,drive$: CLOSE #7 

27@ REMark Load DIR from RAM 

280 DIM f$(1280,24) 

296 OPEN_IN #5,’RAM1’ & ’ cat _dat’ 

300 FOR n=@ TO 1220 

310 IF EOF(#5) THEN CLOSE #5: LET dirend 

=n: GO TO 358 

328 INPUT #5,f$(n) 

330 clen=LEN(f$(n)): IF clen<4 THEN NEXT 
n: ELSE IF f$(n,clen-3)=’_’ THEN GO TO 
318 

348 END FOR n 

352 IF CODE(f$(dirend))=@ THEN LET diren 

d=dirend-1 

368 LET FI=dirend 

37@ REMark Re-order DIR from RAM 

388 PRINT #2;’ Please wait for re-orderi 

ng’ - 

392 LET m=dirend: s=m: cnt=0 ei 

40% LET s=INT(s/2): IF s<1 AND NOT cnt T 

HEN GO TO 489 

419 IF s/2=INT(s/2) THEN LET s=st1 

428 FOR n=2 TO ms 

43@ LET cnt=6 

448 LET j=n 

450 IF f$(j)>f$(jts) THEN LET x$=f$(j):L 

ET f$(j)=f$(j+s): LET f$(j+s)=x$: LET j= 

j-s: LET cnt=cnt+1: IF j>@ THEN GO TO 45 

® 

466 END FOR n 

472 GO TO 400 

488 RETurn 

906 DELETE flp1_BOOTsortBAS: SAVE flp1_B 

OOTsortBAS , c 

91% DEFine PROCedure sv: DELETE f1p1_BO0O 

T: SAVE f1p1_BOOT: END DEFine sv 


O eli 


Interriation eport 


? 
15 Kilburn Court , Newport, Ri 02840 USA 


CABLE COLUMN 
By Bill Cable 


ARCHIVE SERIES 
PART 8 : ORDER and SELECT COMMANDS 


The ORDER Command was introduced in the last issue of 
UPDATE. Now we will complete our discussion of it and 
move on to the SELECT Command. The ability to order 
on the fields of a database and quickly locate needed 
information using that order is the most powerful feature of 
a database system. It repays us for all the effort it takes 
to organize our information in the record/field format. 
Although we have covered the general principles of order 
we need to give a few more examples and also illustrate 
the difference between ordering a “looked" database 
versus an "opened" database. Next we will explore the 
SELECT Command which allows us to make temporary 
subgroups of our database by specifying certain criteria 
about the fields. 


Before getting into that let's celebrate the fact that this 
series is marking the end of its second year. During that 
time, UPDATE has provided a reliable soap box for me to 
stand on preaching the virtues of this excellent database 
system. | even hear from time to time that the column is 
being read and used. | have tried to make the series easy 
for beginners to join at any time but soon we will start 
building on what we have covered and begin writing 
ARCHIVE programs. The best kind of programs for this 
column to cover are ones that will be useful to its readers. 
Please feel free to request programs covering subjects of 
interest to you. For those wanting a complete collection of 
the series, back issues of UPDATE are still available and 
here is an issue index : 


UPDATE ISSUE INDEX FOR THE ARCHIVE SERIES 
Jul 90 Part 1: Database Concepts 14-17 
Oct 90 Part 2: Archive Data Structure 37-40 
Jan 91 Part 3: First Commands 23-25 
Apr 91 Part 4: Create, Open, Insert Commands 25-26 
Jul 91 Part 5: Alter and Delete Commands 33-34 
Oct 91 Part 6 : Find,Search,Continue Commands 36-37 
Jan 92 Part 7: Order, Locate, Reset Commands 33-34 
Apr 92 Part 8: Order and Select Commands 


Altogether it comprises 20 pages of practical ARCHIVE 
tips gained through extensive experience. tt should prove 
invaluable to anyone wanting to use ARCHIVE. Maybe 
you don't have time to seriously tackle ARCHIVE right 
now but if you have the issues the information will be there 
when you need it. That is why its important to keep 
supporting UPDATE, !QLR and User Group publications. 
Information gets collected in a nice format so we have it 
when we need it. | would also like to encourage others to 
write more for these publications. 1 have never read a QL 


related article that didn’t give me some useful information 
and insight. Never feel that your experiences are too 
insignificant to share. How hard is it write an article? 
Load QUILL and put down your thoughts. Save it to a disk 
or microdrive. Send it to the intended publication and you 
will have made one editor's day. 


PREPARATION 
In the description below | will "italic" what you should 
enter to participate in the examples. We will use the 
OPEN command on the GAZET_DBF database supplied 
with ARCHIVE and permanently change it so make sure 
you use a copy and not your master. Start ARCHIVE 
(DATABASE) and go through the following collection of 
commands as a refresher. <ZNTER> means press the 
ENTER key : 

look -/)gazet’<ENTER> 
print count‘) <ENTER> 
print recnum)} <ENTER> 
display<ENTEF> 


Q=device,mdvi_,fipi_, etc 
see how many countries 
current record number 
display current record 


find <ENTEK> find something 

print £ i/<ENTER> — current record number 
next<ENTER> move forward one 
display<ENTER> see current record again 
search pop-+100<ENTER> field meeting condition 
continue<ENTER> next one 

order pop, a<ENTER> order by population 


locate 100<ENTER> 
det a=50<ENTER> 
locate a<ENTER> 


locate on population 
use variable with locate 


ORDER COMMAND (continued) 
In Part 7 we covered the basics of the ORDER Command. 
We saw that we can quickly define one order for an 
ARCHIVE database using 1,2,3, or 4 fields.. It is usually 
Not useful to order on move than 2 fields. If we had an 
address database with fields for last name and first name 
it is easy to see that it would be handy to have order by 
last name and then first name so we could separate 
people with the same last name but different first names. 
Having only one order available at any given time is a 
handicap. PSIOQN’s PC version of ARCHIVE can keep 4 
sets of order active at the same time and is the one big 
advantage of PC ARCHIVE over QL ARCHIVE. For a 
book catalog database it would be nice to be able to look 
up by title or author at a moments notice. With QL 
ARCHIVE we can have it ordered on one or the other. If 
we want a different order we have to execute the ORDER 
Command and wait for a short time for the new order to be 
completed. Let us order GAZET by continent and 
population and play with that : 

order continent$ sa, popsd<ENTER> 

lopate “EUROPE*. 1000<ENTER> most populous first 
next<ENTER> population decreases 
<F52<ENTERS~ 

locate “ASIA”, 100<ENTER> 
locate *E”<ENTER> 


first ASIA under 100 
first EUROPE 


a1 


"EUROPE"<ENTER> just beyond EUROPE 


locate 


These are tricky because there are two fields In the order - 


and the seoond field, pop, is ordered in descending order. 
Try the same order command only replace the "d" after 
pop by an "a" and try the same commands. Leaving out 
the 2nd field in locate defaults to O or null. 


One property of an ARCHIVE database is that whatever 
order existed under the last OPEN access will be the one 
that is in effect the next time the database is “looked” or 
“opened”. If you only ordered the database when it was 
accessed by “look" then no order is in effect when it is first 
accessed. Try the following : 

close<ENTER> close GAZET_DBF 

open “{}gazet"<ENTER> device (mdv1_,flp1_,etc) 
order country$:a<ENTER> make a permanent order 
close<ENTER> 

look "{)gazet"<ENTER> 

locate "D"<ENTER> locates by country 
order capital$:a<ENTER> make new order 

locate "D"<ENTER> now locates by capital 
close<ENTER> = 

look "{)gazet"<ENTER> 


docate "D" <ENTER> order by country still on 


reset<ENTER> remove all order 
locate "D" error 8 since no order 
close<ENTER>- 


What | find useful for each database is to define the 
primary (permanet) order (most commonly needed order) 
with the database accessed with OPEN. Then | define 
other orders and select or reset only while looking at the 
database so | never remove the primary order. To get my 
primary order | only need close and look or open again 
{usually faster than reordering a large database). Any 
order in effect is maintained while adding, altering, or 
deleting records. Only the RESET or ORDER commands 
will alter the current order. Remember that there is no 
way to tell what the current order is. You must keep track 
of that yourself. 


SELECT COMMAND (FILTERING) 
The SELECT command allows one to select a subgroup 
from the currently selected tecords. It has the form : 
select (field condition1) and/or (field condition2) ....etc. 
Each field condition evaluates to a numeric expression 
usually a logical statement (0 is false, nonzero true). 
When a database is first accessed all records are 
selected. Each time a select command is executed some 
records can be filtered out depending on the select 
condition. Any order in effect when a selection is made 
remains in place after the selection. If a reset is done to 
make all records active again then all order is lost. If the 
database is being “looked” at then any permanent order 
made when it was "opened" will still remain when it is re— 
accessed again. 
took *{)gazet"<ENTER> {}=device mdv1_,fip1_, etc 


print count ()<ENTER> all records active 
display<ENTER> display current record 
docate “D"<ENTER> country order active 
select pop>20<ENTER> countries with population>20 
print count ()<ENTER> see how many now active 
display<ENTER> 
locate "D"<ENTER> no "D" so "EGYPT" 
select continent$~*ASIA*<ENTER> 
print count ()<ENTER> 
display<>ENTER> 
next<ENTER> 
<F5><ENTER> 
(repeat until end is reached) 
We ended up with all Asian countries with a population of 
greater than 20 million still ordered by country. We could 
have done the selection in one statement : 
reset:print count (}<ENTER> 
select pop>20 and continent$="ASIA"<ENTER> 
print count ()<ENTER> 
display<ENTER> 
We could use an or statement to get quite another 
subgroup 
reset<ENTER> 
select pop>20 or continent$="ASIA"<ENTER> 
print count (}<ENTER> 
Now we have all countries with a population greater than 
20 million or in Asia. Using the INSTR() function allows for 
interesting options (see pg 51 ARCHIVE manual). 
reset<ENTER> 
select instr (languages$, "ENGLISH")<ENTER> 
print count ()<ENTER> 
display<>ENTER> 
Now we have selected all countries which have English as 
a major language. A quick way to see all selected records 
uses the ALL statement which will be described later : 
all:sprint:endall<ENTER> 
You noticed that "ENGLISH" appeared somewhere in the 
Languages$ field. The INSTR() function allows us to make 
use of that even though other words may also appear in 
the field. We could see the same records although not 
select them using the SEARCH Command which uses 
syntax similar to the SELECT Command : 
reset<ENTER> 
search instr (languages$- “ENGLISH")<ENTER> 
while found{) : sprint: continue; endwhile<ENTER>~ 
The WHILE Command will be covered later but is 
illustrated to show ARCHIVE has many tools available. 


The SELECT Command is a powerful tool that allows the 


“user to temporarily work with a subgroup of the database 


meeting specified conditions. Using the EXPORT 
Command (described later) the subgroup can even be 
exported to be its own database if desired. 


Next time we look at the UPDATE Command and WHILE 
Command and write some single line programs. Until then 
Happy Archiving! 


22 


USING QUILL FOR ASCII FILES 
Bob Hartung, 2416 N. County Line Road, Huntertown, IN 46748 


One of the features of QUILL (WP) that 
somehow got lost in the translation of 
the v.12/84 QLUG is that ASCII files may 
be saved and loaded using the PRINT and 
IMPORT modes, respectively. By using 
XOVER or a similar program, files may be 
translated to DOS in this format, which a 
DOS line-editor and most wordprocessors 
will accept. 

This facility may also be used to 
create DO files and source code for com- 
pilers, as well as a means of providing 
full-screen editing for those who do not 
have the TOOLKIT ED capability. 

Since the process re-directs to 
storage media the output that ordinarily 
would go to the printer, the printer_dat 
which is used must first be amended for 
this purpose. An easy way of doing this 
is to CLONE QUILL and its data files to a 
new disk or mdv cartridge. The _HOB file 
may then be deleted to make more room if 
desired. 

Enter LRUN flp1_INSTALL BAS (or mdv1_) 
and key ENTER to accept the SER1 and 
flp1_ or mdv1_ prompts. At the menu move 
the cursor to OTHER and key F2 for EDIT. 
Rename OTHER to PROGRAM (key the right- 
cursor to go to entry mode), set LINEFEED 
to LF only, and toggle CONTINUOUS FORMS 


to YES. When done, key F5 to install 
this driver. Key ESC or RESET to return 
to Basic. 


If you want to access the printer_dat 
file from RAM1 instead of drive one each 
time PRINT is called, it will be neces- 
sary to run the CONFIG_BAS program and 
reset the location of SYSTEM files to 
RAM1_ so the program will look there for 
the printer. data. (Refer to CONVERT_BAS 
to reconfigure v. 2.35.) After doing 
this, load the BOOT routine and insert 
this command in a line preceding the EXEC 
call: COPY flpi_printer_dat TO RAM1_ 
printer_dat (or use COPY mdv1_....) Use 
this copy of BOOT, QUILL, and data when- 
ever you load in or save ASCII files. 

To simplify creating new files, set up 
a dummy file on this disk or mdv with 
LEFT margin, INDENT, UPPER and BOTTOM 
margins, PAGE size, and line GAP all set 
to zero, and RIGHT margin set to 80. 
Source code files require this, and files 
in a DOS wordprocessor may then be re- 


formatted more easily. Page headers and 
footers will also be output with ASCII 
text files unless turned off or the page 
size is pre-set to zero 

, Load this dummy file whenever creating 
a QUILL file that will be output as ASCII 
data. Keep in mind that F4 and’ other 
command-codes will be stripped from the 
text data when it is saved as ASCII code. 
Some imbedded TRANSLATE characters may 
remain but will not be recognized by a 
DOS wordprocessor, and of course should 
not be used in Basic, or DO, or source 


code files. Set JUSTIFY to left margin 

and do not use wrap-around lines in 

source code files, Basic or DO listings. 
Having done all this, to save a file 


in ASCII from this QUILL format simply 
key F3, P for PRINT, ENTER for current 
file, ENTER for whole file, and when the 
"to printer" prompt appears, enter the 
filename of eight characters or less. 
Note that _lis is appended to files saved 
in this manner, which you probably would 
want to omit for DO and Basic files by 
renaming them after they have been saved. 
(A RESET must be done before calling a DO 
routine if QUILL or another EXEC program 
has been used previously.) 

To IMPORT (load in) an ASCII file or 
Basic or DO listing it must also have or 
be renamed toa filename with the lis 


suffix. Key F3 twice for COMMAND II then 
F for Files and I for Import. Enter the 
filename, including _lis, then at the 


prompt for type of input, select Line. 
To use the XOVER program supplied with 
PC Conqueror, first use RESET then 
execute the program with EXEC flp1_XOVER. 
Place a pre-formatted DOS disk in drive 1 
and your QDOS ASCII file disk in drive 2. 
Key CTRL C to activate XOQVER and follow 
the menu prompts for "Export files (QDOS 
> DOS)". Since it is accepted practice 
to give DOS text files the suffix, .TXT 
you may want to use the DOS REN command 
to rename files for easier recognition. 
I did not have a PC or clone to test 
these ASCII files in a DOS wordprocessor 


like Word, WordPerfect, or WordStar but 
they worked fine for me under PC Con- 
queror, using Spinnaker EZ-Writer with 


spellcheck and the Disk-Count EDIT line- 
editor, as well as the DOS EDLIN routine. 


23 


260 IF A=96 THEN CLS #0: INPUT #2;’mo ’; 

mn;’ da ’;dd;’ year ’;yy\’hr ’shr;’ min 
’smin: sec=@: SDATE yy,mm,dd,hr,min,sec: 
GO TO 49 

26@ IF A=78 THEN GO SUB 298: GO TO 48 

276 IF A=1® THEN GO TO 286: ELSE AT row+ 

L,7: PRINT ’ ': NEXT L: RETurn 

288 LET POS=IT+L-m-1: END IF : 
ive$ & ct$(POS): LRUN drive$ 

298 CLS #0: IF cpy$="C" THEN PRINT #0;” 

COPY from catalog in drive #°;: ELSE PRI 

NT #0; ’CATALOG drive #’; 

308 drive$=INKEY$: IF drive$<’1’ THEN GO 
TO 300: ELSE PRINT #@;drive$ 

31@ INPUT #6\’ <ENTER> for PROGS only, o 
r leading chrs. in title(s) or extension 
’\? EG: <CHRS> <_doc> <_dbf> <_lis> <_da 

t> for wildcard DIR ’;suff¢ 

320 drive$='’flp’ & drive$ & ’_’: 
ive$ & ’_’ & suff$ 

338 OPEN_OVER #7,’RAM1_’ & ’cat_dat’ 

340 WDIR #7,wdr$: CLOSE #7 

35@ OPEN_OVER #7,’RAM1_’ & ’cat_nm’ 

368 DIR #7,drive$: CLOSE #7 

37@ OPEN_IN #7,RAM1_cat_nm: INPUT #7,cnm 

$: CLOSE #7) ~ 

388 IF cpy$="C" THEN GO TO 4@@: ELSE PRI 

NT #2\\" RE-ORDER y/n? “ 

39M yn$=INKEY$:IF yn$<’1’ THEN GO TO 398 

400 IF cpy$="C" THEN yn$="y" 

41@ REMark Load DIR from RAM 

426 DIM F$(190B,24) 

430 OPEN_IN #5,RAM1_cat_dat 

448 FOR n=@ TO 1080 

456 IF EOF(#5) THEN CLOSE #5: LET dirend 

=n: GO TO 498 

460 INPUT #5,f$(n) 

47® clen=LEN(f$(n)): IF clen<4 THEN NEXT 
n: ELSE IF suff$="" AND f$(n,clen-3)=’_ 
’ THEN GO TO 456 

488 END FOR n. 

496 IF -CODE(f$(dirend))=@ THEN LET diren 

d=dirend-1 

5@@ IF yn$=="y’ THEN GO TO 51: ELSE GO 

TO 626 

51@ REMark Re-order DIR from RAM 

520 PRINT #0;’ Please wait for re-orderi 
ng’ 

538 LET m=dirend: s=m: cnt=@ 

548 LET s=INT(s/2): IF s<i AND NOT cnt T 
HEN GO TO 628 

550 IF s/2=INT(s/2) THEN LET s=s+1 

668 FOR n=@ TO m-s 

576 LET cnt=@ 

588 LET j=n 

598 IF £$(j)>f$(j+s) THEN LET x$=f$(j):L 
ET f$(j)=f$(jts): LET f$(j+s)=x$: LET j= 


driveg$=dr 


warg=dr 


j-s: LET cnt=cnt+1: IF j>@ THEN GO TO 59 
7) 

6@@ END FOR n 

618 GO TO 548 

628 REMark Re-save DIR to RAM1 

630 IF cpy$="C" THEN GO SUB 726 

64% OPEN OVER #5,RAM1_cat_dat 

650 PRINT #5,cnm$: PRINT #5," ” 

666 FOR n=@ TO dirend 

678 IF CODE(f$(n,1))=® THEN GO TO 696 
688 PRINT #5,f$(n) 

699 END FOR n 

70D CLOSE #5 

719 RETurn 

72@ REMark COPY source drive 1 
drive 2 

738 CLS 

74@ AT 18,6: PRINT ’Place SOURCE media i 
n drive 1 & DEST media in drive 2’\’Key 
F to format drive 2 media’\’Press any ot 
her key to start copying’ 

758 fdt$=INKEY$: IF CODE(fdt$)=@ THEN GO 
TO 758 

768 IF fdt$=="F" THEN CLS: CLS #@: INPUT 
#0\\’ ALL DATA WILL BE LOST ON DRIVE 2 
-- Key ENTER to abort FORMAT’\’ or enter 
DRIVE 2 format title: ’;fdt$: IF fdt$=" 
" THEN GO TO 740: ELSE PRINT #0; Please 

wait -- FORMATTING ’;fdt$: FORMAT “flp2_ 
“ & fdt$: CLS #0: GO TO 749 

776 FOR n=® TO dirend 

786 IF CODE(f$(n,1))=@ THEN GO TO 8@0 
79 COPY fip1_ & f$(n) TO flp2_ & f$(n) 
80% END FOR n 

818 RETurn 

90% SAVE f1p1_BOOTsortCOPY 

918 DEFine PROCedure sv: SAVE flp1_BOOT: 
END DEFine sv 


TO dest 


A COMPOSITTE BOOSTER 
= -- Bob Hartung -- 

If the composite output signal from 
your QL or 2068 does not seem to be at 
the proper level to provide a steady dis- 
play on your monitor, you might want to 
consider inserting the video output of a 
YCR dubbing enhancer between the computer 
composite video output jack and the moni- 
tor composite input jack. I have had good 
results with the RECOTON ($29 + S&H from 
DAMARK or C.0.M.B.) but any with an ad- 
justable video gain control, such as the 
one sold by Radio Shack, should do as 
vell. Please note that because of the 
many possible variables in usage and 
equipment I cannot accept responsibility 
for any damages or undesirable results 


24 


MECHANICAL AFFINITY 
‘ : ‘ 

For the best prices on QL related items in North America and an 
honest attempt to fill your order contact Frank Davis at 
MECHANICAL AFFINITY, 513 East Main, Peru, IN 46970, or Paul, 
Holmgren at MECHANICAL AFFINITY, 5231 Wilton Wood Ct, 
Indianapolis, IN 46254. Examples of prices and items to be found 
there! All prices quoted are in US dollars. 


GOLD CARDS, disk interface, 2 meg of memory and your QL 
running at 16 mHz, 3 disk drives can be used, and uses 
the 1.44 meg, 3.2 meg drives as well as the 360K and 720K 
drives, and for only $500 + $10 for insurance. 

TRUMP CARDS, disk interface, 896K total memory and Tool Kit 
2,print spooler, screen dump, and for only §225 total 
cost which includes shipping. 

Replacement keyboard membranes for only $15. Replace that 
faulty membrane and put your QL to use. 

Backup QL power supplies for only $15. Original equipment 
power supplies, the last of their kind. 

Backup QL for only $80 + $5 for shipping. U.S. QL with JSU 
ROM, power supply, TV cable. 

Miracle disk drive adaptor to allow your Trump or Gold Card 
to access 4 disk drives for only $40. Requires 1.28 or 
higher ROM chip on your Trump Card to use. Let us know if 
you need to replace the Trump eprom (available for $12). 


Internal battery backed clock for QL, uses lithium battery, so 
should be good for far longer than ordinary batteries. This 
plugs in where the 8032 goes, and the 8032 is then 
installed in it. $20 for brd & battery, or $26 installed. 


NEW FOR THE Z88! 
Soft carrying case for the Z88. Protect your notebook sized 
computer from accidents and the elements. This case is also 
handy for those with the Laser PC3, Compumate 3 or PC4. $10 


Ts1000 ! 

Tom Bent's improved 8K TS1000 ROM on eprom. $10.00 Requires at 
least 16K RAM expansion to operate, but bug corrected. $12 if we 
supply the special socket. 


FLOPPY DISKS! 

5 1/4 floppies DSDD --- $18 for 100 (360K or 720K) 

5 1/4 floppies DSHD --- $20 for 100 (1.2 meg) 
These prices include shipping. r 


TS2068! 

T82068s with cables and manual fot only $50 postpaid. 

182040 printers with 3 rolls of thermal paper for $30 postpaid. 
TS2050 modems for TS2068 or TS1000 for only $35 postpaid. 


We accept personal checks, money orders, company checks and 
cash. No charge cards please at this time. We hope to be of 
service to you. For a complete catalog, send a large self 
addressed envelope to either of the above locations. 


A SELECTIVE MENU—-LOADER 


Bob Hartung, 


On QL utility disks which contain 
both Basic and data files, this program 
provides for the display of only the type 
of titles selected for an auto-loading 
menu, in sorted or unsorted order. By 
changing line 316 to LET suff$="" and 
line 398 to LET yn$="y" it may be used as 
a BOOT routine that brings up only file 
titles for Basic programs or DO files. 
Selected types of files may be copied in 
sorted order from drive 1 to drive 2. 
Because it utilizes the WDIR command, 
TOOLKIT II is required. 

The program assumes that a convention 
is followed in using a three-character 
extension following an underscore for all 
data file titles, eg: _doc _dbf _lis _txt 
etc. Basic or DO titles either have no 
such extension or else more or less than 
three characters follow any underscore in 
them. 

The program may be used 
as selected when it comes 
entry is prompted for the wild card set 
of characters to be used by the WDIR com- 
mand. If ENTER only is keyed, only the 
files will be shown that have no three- 
character extension it their titles. If 
an underscore does not precede characters 
used in a wild card set then a directory 
will be shown of all titles having that 
set as the beginning of the title or as 
the beginning of an extension. 

It may be noted that a DIR file (cat_ 
nm) is stored in RAM1 as well as a WDIR 
file (cat_dat). The reason for this is 
that WDIR does not provide disk format 
and title information when used in this 
manner, so the title is extracted from 
this DIR file and the rest is discarded. 


on any drive, 
up. Next, an 


& NOTE RE: DIRDATCOPY 

Because of a quirk in the way the QL 
handles the field-lengths of previously- 
used array elements, the sorting and COPY 
routines may give uncertain results. To 
correct this, change line 758 of the DIR- 
datCOPY routine to correspond with line 
598 of this listing, and line 93@ should 
be revised to correspond with line 79% in 
this listing. Sorry about that! 

Also, in case you missed it in Frank's 
comments in the 1/92 UPDATE, line 120 of 
the printed DIRdatCOPY listing should be 


2416 N. County Line Rd. E., Huntertown, IN 46748 


+ GOTO 218 instead of ... GOTO 229. All 
these corrections and BOOTsortCOPY will 
be included in my QL ISSUE disk if pur- 
chased after 3/1/92. 


BOOTsortCOPY 


1 TK2_EXT: REMark May be omitted if TK2 
activated previously 


1® MODE 4 
26 FLP_USE flp: REMark Or FLP_USE mdv 
38 cpy$="": GO SUB 299 


46 PAPER @: INK 7: CLS: PAPER #8,7: INK 
#0,0: CLS #@ 

56 DIM ct$( 1800, 24) 

6@ OPEN_IN #7,’RAM1_” & "cat_dat’ 

7@ INPUT #7,1ine$: CLS: PRINT ’CATALOG-’ 
;lineg 

8@ FOR x = @ TO 1900 

98 IF EOF(#7): LET FI=x: GO TO 138 

198 = INPUT #7,ct$(x) 

118 clen=LEN(ct$(x)): IF clen<4 THEN 
NEXT x: ELSE IF suff$="" AND ct$(x,clen- 
3)=’_’ THEN GO TO 99 

126 END FOR x 

138 CLOSE #7 

14@ IF CODE(ct$(1))=@ THEN PRINT “NO “;s 
uff$;" FILES FOUND": GO TO 2¢ 

156 PRINT #@\\’ Key any CHR to scroll 
ENTER to load C to copy sorted files’\ 


’ N for NEW CATALOG £ for SDATE: ’;DAY 
$;? ? ;DATES 
16@ LET F21: x=7: Y=2: C=INT(FI/18): DIF 


=INT ((FI/18-C)*18+.4): row=1: lop=17 
17@ LET Q$=’p’: IT=1: IF lop>=FI THEN lo 
p=FI: GO TO 198 

188 FOR I=1 TO C: FOR m=@ TO lop: AT row 
+m,7: PRINT ,,,: AT rowtm,8: PRINT ct$(I 
T): LET IT=IT+1: NEXT m: GO SUB 220: NEX 
T I: FOR I=1 TO 19; AT 1,7: PRINT ,,,: N 
EXT I: IF NOT DIF THEN GO TO 176 

198 IF F THEN FOR m=@ TO DIF-2: AT rowtm 
»7: PRINT ,,,: AT rowtm,8: PRINT ct$(IT) 
: LET IT=IT+1: NEXT m: IF lop>=FI THEN F 
=0 

208 IF NOT F THEN IT=FI 

218 GO SUB 226: GO TO 179 

228 FOR L=@ TO m: AT row+L,7: PRINT 7>’: 
FOR k=1 TO 5: NEXT k: IF Q$<>’’ THEN FO 
R k=1 TO 18%: NEXT k: LET Q$=’’ 

23@ LET A=CODECINKEY$): IF A=@® THEN LET 
Q$=’p’: GO TO 230 

248 LET cpy$="": IF A=67 THEN cpy$="C" 
GO SUB 29%: GO TO 49 


26 


HARA CONFERENCE AND EXHIBITION CENTE 1001 SHILOH SPRINGS RD.DAYTON,OHIO 
VENDOR INFORMATION 


Register now for your booth(s) at the 17th annual Computerfest, August 29 and 30, at Hara Arena and Conference Center, Dayton, 
Ohio. Computerfest is the largest and longest running computer show in the midwest. The past few years have seen tremendous 
growth in both vendors and attendees. Computerfest ‘91 drew over 15,000 people, double that of 1989. Early registration will 
help secure the space you want 


The sales area at Computerfest ‘92 is divided into two parts - the professional area and the flea market area. 


PROFESSIONAL BOOTHS FLEA MARKET SPACE 

200.00 until June 30, 1992 $25.00 until June 30, 1992 
e000 July i 1992 and thereafter $30.00 July 1, 1992 and thereafter 
Professional Booths are 10’ x 10’, with two draped tables, Flea Market spaces are 6 x 8’, with one table and one chair. 
2 chairs, and backdrop. Admission is included. Admission is extra, $5.00 per person (good for both days). 
Friday night set up is available at no additional charge. Friday night set up is available for $25.00 per vendor. 


All Professional Booths and flea market spaces have electricity (120 VAC) provided at no extra charge. 
Normal set-up is 6 AM to 10 AM on Saturday. Friday night set-up from 6 PM to 10 PM is available 


To reserve your space(s) at Computerfest ‘92, complete the Vendor Registration form below and return with your check in the 
correct amount for the space(s) and services you require, and mail to Mark Hanslip, Vendor Relations. 


MARK HANSLIP 
; ' 143 Schloss Lane 
D A For more information, contact: Payton, Ohio 45418 
EST 


(513) 263-1 


(OMPUTERFEST: ')) VENDOR REGISTRATION FORM 


Company or Group Name 


Street Address 
City/State/Zip Code n 
Contact Person Phone (, ). 
oO I would like to reserve professional space(s) @ $200 ($250 after June 30)... . Amount 
1 need ___ tickets for the personnel in my professional booth (no charge).......... Amount 
oO I would like to reserve _____ flea market space(s) @ $25 ($30 after June 30)........... Amount 
Admission is extra, $5.00 per person, good for both days 
oO Ineed___ admission ticket(s) @ $5.00 ea (good for both days)... .. Amount 
[J [want to set up on Friday night from 6 PM to 10 PM 
Professional booths no charge Flea market spaces $25 per vendor. ‘ . Amount 


TOTAL ENCLOSED 


‘ 
DM A Make checks payable to “DMA Computerfest” and mail with this form to: 
Mark Hanslip, 143 Schloss Lane, Dayton, OH 45418 7 
Compunertest Is a registered rademérk of The Dayton Mixocomputer Association , 


NEW!! In-stock from Software#? the best 
value WYSIWYG QL word-processor: text®!plus4 
with Qtyp spell checker, Quill-like interface 
many new features (and unlimited North 
America help.) improved speed & fonts, etc. 
text#! plusd $139.95 
WYSIWYG wordprocessor & Qtyp spell checker 
fountext##: graphic driver 4mdvs 49.95 
WYSIWYG output to 9 or 24 pin with 32 fonts 
founted#§: screen font editor 1 mév 29.95 
Make text87 custom fonts 
2488: 24 pin driver 5S mdvs 29.95 
for text87 only 


Order two or more Software’? titles and take 
10% off the second title, 15% off the third 
and fourth. 
Boutal, Chris 
QL_GENEALOGIST (2nd ED) $4.95 
Family history with UK royal family demo 
ASK about SECOND EDITION upgrade 23.95 
CAPE Software 


RECIPE ver 2.0 NEW Tmdy 19.95 
Recipe card file _dbf and demo 
EMSoft 

MAILBAG ver 3.1 Tmdv 24.95 
Mailing list _dbf with demo 

QLAND_LORD ver 3.1 (R) Jimdv: 24.95 
Real Estate management _dbf 

TRUST_FUND ver 3.1 Tmdv 24.95 
Stock, Bonds etc _dbf with demo 

INVENTORY ver 1.3 Tmdv 14.95 


Personal property record keeping _dbf 
EMSoft title upgrade(with original) 4.95 
TAX-1-QL/91 CANCELLED 

MJM Software 
CAM MASTER demo --JSU only; 384K Ram) 9.95 
CAM MASTER site license 2850.00 
Platypus Software 
QLUSTer Tmdy 12.95 

EXECutable, multi-tasking files handling 
QLUMS i tmdy 19.95 
Pseudo MS-DOS file handling on a QL 

Qfile 
HS-QLINK (R) tndv 24.95 

Read/write/format QL/MS-DOS/Atar i-TOS 
DISCOPY Tmdv 14.95 
Fast copier between QL/MS-DOS/Atari-TOS 
MS-QLINK with DISCOPY 2mdvs 34,95 

Sector Software 
FILES2: Taskmaster Files upgrade 24,95 
Now multi-tasks in ANY environment (R) 
Williams, Richard 
TABYEDITOR (R) 2mdvys 34.95 
iendly Editor with vertical block defini 
& 8 columns in 19" with word wrapping 


EMS oft Software for the GUL that really works 


Wood & Wind Computing 

CHAOS BUSTERS 29.95 
SuperBASIC to ARCHIVE utilities & OBEasy 
DBEasy: UN or EXpanded QL 3 mdvs 21,95 
User friendly front end for ARCHIVE (R) 
DBProgs 1mdv 19.95 
6 useful ARCHIVE utilities 
DBTutor: UN or EXpanded QL 3 mdvs 24.95 
Archive "Flash card” to teach yourself 
HELPER 1 mdv 9.95 
SuperBASIC filehandl ing utility 

DILWYN JONES COMPUTING 


FILEMASTER (R) tmdv 23.95 
File handling utility 

THE GOPHER (R) Tmdv 23,95 
File finding utility 

QL BASIC REPORTER 1mdv 19.95 
$8 Programming aid 

QUICK POSTER (R) 2 mdvs 19.95 
Easy to use poster/bumper sticker prog 
SUPER DISK INDEX (R) 1mdy 23.95 


The easy file cabinet for all your files 


BOOKS & MAGAZINES 


Syntax magazine set & Foyt book 29.95 
Al] 48 monthlies, 3 quarterlies & book 
Syncware News 19.95 
All 30 issues (5 vols - 6/vol) 

Quantum Levels 19.95 


All.12 issues (2 vols - 6/vol) = 
SPECIAL THRU 05/29/92 postmark 

Any 2 sets take off $10.00; all 3 for 49.95 
The Secret Guide to Computers 15.00 

Delightful, entertaining and informative 


HARDWARE 
T/S BUS Connector/Extender (3 pack) - 13.95 
T/S BUS Connector/Extender 3*(3 pack) 26.95 


All prices are postpaid in N.A. 
(but subject to change without notice.) 


Choice of disk size/format: specify number of 
sectors, Add $4.00 per mdv 

(See number of mdvs required next to price) 
Send #10 SASE for review (R), if available. 


FREE CATALOGUE 


EMSoft 
P.O, Box 8763 
BOSTON MA 02114-0037 
(1-617) 889-0830 


NESQLUG DEMONSTRATES NEW QL EXTENSION 


NESQLUG (New England Sinclair QL User Group) demonstrated at their April 
meeting a new extension called PROD developed in collaboration with 
Computation Genetics Corp. of Chelsea, Massachusetts. The new program 
utilizes a breakthrough Bio-Genetic Thermo-Plastic (BGTP) developed by CGC. 


The material has electrical conductivity properties which can be channelled to 
the serial port (comms port) of a computer. The PROD extension interprets 
signals from a sensor pad (PROD PAD) made from BGTP. In conjunction with 
the extension this permits heuristic interpretation of the user's needs when 
operating other computer software. 


CGC executive, Dr. R. Ida bin Phulen, and his assistant, Candice B. Reel, 
demonstrated the prototype. The user operated a number of unfamiliar 
software titles without reference to manuals by placing a hand on the pad, 
exercising great concentration and applying Body English. Remarkably, in 85% 
of attempts the user's desired effects were input to the QL. More 
surprisingly, the demonstrator, although told that the program's function was 
word-processing, formatted three paragraphs of justified word-wrapped text in 
ABACUS as quickly as if it had been done in QUILL. 


PROD is an extension that presently takes 10 parameters including the user's 
Sweat Salinity Factor, Body Language Profile Index, handedness (Left or 
Right), personality type (A or B) and latitude and longitude of place of birth. 


Dr. Phulen, who heads the CGC product development team, is a reknowned 
computer high-achiever, informally acknowledged to be descended from 
Victorian poet and all-round genius, Lord Byron, on his father's side and from 
the explorer, Richard Burton, on his mother's. 


“Initially, we selected the Sinclair QL because it was cheap,” admitted Dr. bin 
Phulen. "Subsequently, in attempting to transfer the concept to other 
computers, we find that these results are only possible on an unexpanded QL 
with a JSU ROM. Our software team suspects that PROD utilizes extraneous 
code relating to the unfinished WHEN ERRor function on that ROM. Rumors 
that only a British computer can respond to Body English are premature" 


PROD will be released to the public domain as soon as the team are sure that 
the computer will not retaliate if it is input at too high an EOR (emotional 
overload rate). "We see this development as a major breakthrough in Artificial 
Intelligence. Our sole interest is the commercial application of the sensor 
pad,” explained Dr. bin Phulen. "Whether or not Graphic User Interfaces and 
mice will be made obsolete remains to be seen.” 


It is expected that when commercial release commences in July, 1993, the 
sensor pad will retail for about $400.00. A scurrilous rumor that a discount 
drug store bandage works just as well was traced to a Silicon Valley firm. 
CGC attorneys are reviewing legal options. PROD and its source code will be 
freely available through NESQLUG, at P.O. Box 8763, Boston MA 02114. 


Computation Genetics received commercial and military grants of $75 million 
grant to develop Bio-Genetic Thermo-Plastic applications on April 1, 1992. 


29 


NOTES FROM EMSOFT 


In the last issue of update, we summar- 
ized the Dilwyn Jones titles that we 
stocked. As a result of an onset of the 


flu, the description of SUPER DISK INDEX 
ommitted an essential feature: the 
directory of files in the index is 
automatically read in by the software 
from the disk's directory. That is, 
once SDI is running, it automatically 
adds all the file names on a _ disk 


inserted in the designated drive. 


We take off our CATS hat in admiration 
to all who have ordered this program to 
date under the mistaken assumption 
that each file name had to be key- 
punched individually! 


TAX-I-QL/91 has been cancelled. As of 
inid-February only eight orders had 
been received. Customers checks were 
returned. We don't know if the reason 
is that the program is not useful, if no 
one who owns a QL needs Form 1040, or 
if we did not advertise the program 
enough. In any case, we couldn't 
justify the time and cost of even 
writing eight manuals. 


If there is interest for a TAX-I-QL/92, 


please let us know at the EMSoft 
address in the ad elsewhere in this 
issue. 


HOWEVER, the good news is that we 

now have text87 plusé. Yes, it's expen- 
sive, but cheaper than DP's PERFEC- 
TION. The cursor is faster, overwrite 
mode is supported, and Function keys 
behave like Quill's, for easy transition. 
But it's the bells and whistles that set 
it apart. On-line help instead of a fat 
manual, multiple documents in memory, 
moveable windows for prompts and help, 
document previewing before printing. 
Great for the person who takes the 
appearance of documents seriously. 


QL GENEALOGIST has a second edition, 
keeping it ahead of every other family 
tree program for any computer. A neat 
feature is the ability to export to 
ABACUS utilizing spreadsheet cells as a 
surrogate family tree. 


5G 


LIGHTHOUSE, QL GRAPHICS 
by Taylor Penrose 


"Enclosed please find my 
first of many contributions to 
the QL community. This screen 


and dump was created for a CGP 
220 color ink jet printer 
produced by Radio Shack, so I 
can not say if it will work on 
any other color printer to doa 
screen dump. I am still working 


on an eight color and may end 
up using Pixel 6 in a loop. For 
those with different printers 


it will at least 
starting point.” 
(Editors Notes) I think this 
short type in program is a 
marvelous way to get some of 
our readers started or helped 
in using their QL to produce 
screens or graphics without the 
aid of an art program. Study 
the listing and look for the 
REM lines, as these will tell 
you what is being created on 
the program lines upto the next 
REM line. You can later take 
each of these segments and use 
them by their self to see what 
effect they create on their 
own. Then try changing the 
Parameters given and see the 
result. Ah!ii!!, this is not 
"heavy" programming, just fun. 
' For those who have enjoyed 
this little exercise and want 
to further explore graphics and 
screen dumps on the QL, we have 


provide a 


two things that come to mind. 
One, we hope to see more from 
Taylor Penrose on this and 
related subjects in the near 
future. Second is to study the 
manual that came with the QL. 


While what we find in there is 
sparse, many of us have learned 
just enough about our machines 
that if we were to now get out 
that old manual that we got 
lost on when we first got our 


QL, we would see that it makes 
more sense to us now. Not 
perfect, mind you, just more 
sense than it first did. Have 
fun with your computing, like 
most subjects we encounter in 
life it should be kept light, 


so that it is just one more of 


lifes enjoyments. 


108 WINDOW 51i2.262,6,6 ‘PAPER 7 -OVER { ‘CL9 ‘CSIZE G.@ -SUALE 10.4.8 
11@ WINDGM #8,512,54,.6,282 =PAPER 46,457 'ENK %6,6 °CLS #0 

206 REMark == Ocean == 

216 INK 4.7 ‘FILL 1 

226 LINE @.8 TO 6,36 5194. TO 198.34 

360 REMark == DarkKed sky == 

318 INK 2.0,2 «LINE 8.76 TO 6,80 1194.78 TG 196,86 

$20 LIWE 0.65 TO 6,63 5196.65 TO 196.63 «FILL 8 

4@8 REMNark == LightRed Sky == 

416 INK 2.7 :FILL 2 

420 LINE G.50 TG 198.58 14,55 TO 6.59 1196.55 TO 196.59 

S@@ RENark == Grey Cloud 
5i@ INK 255 7 ‘ 2 
$20 FILL t © CIRCLE 60.55, 10.9E-2.RAD( 90) 58G,57,3 189,57,2 - FILL @ 

66@ REMark == Gulls = ’ 

616 IKK @ :ARC 4@,4@ TO 45,45,-PI/“2 TO 5@,5@,-PIv2 189.35 TO $5,35.-PIl-@ TO 161,35 .-Pive 
REMark == Safl Board <2 Af 

FILL @ <INK @ ‘CIRCLE 40,20,13,.25,RAD¢ 1205 :RENark Board Shadow 

FILL £ :INK 2? ‘CIRCLE 48,26,12..25,RAD(C 128) «FILL @ :REMark Board 

INK @ -FILL S°ARC_R 3.2.5 TO -15,15.P1°3 'REMark Mast & Sail ‘ 

INK 3 :LINELR TO 2,-15 TO 13.-,5 <FILL @ : INK 4 *LENELR ~15,15 TO -5,~-3,5 

INK @ ‘FILL @ ‘ARC 4@,38 TO 38.22.-PI¢4 :REMark Boom 

REMark == LIGHTHOUSE == 

INK 7 (OVER 1 FELL CIRCLE 172,38,68,.,1.PIV2 

INK @.4 FILL $ : CIRCLE 172,3@,6G....P172 -GVER 1 :REMark Island 

INK 2 FILL f tL INE 165,35 TO 167.9@ 4179.33 TO 177,98 ARD 165.35 TO 179,45.P1-9 a 
‘FILL &£ : ARO 167.99 TO 177,96,P1-3 /REMark Tower 

THK @ :FILL @ ‘LINE 167.5,89 TO 168,95 s176.5.89 TO 176,95 -ARC 167.5,.89 TO 176.5,89,P5 


INK 2 :FILL 1 ‘CIRCLE 172,95,5.5..2,-P1/2 -REMark Top 
BLOCK 8-6,476,65,@ ‘BLOCK 6,6,471,86.7 ‘RENark window 
BLOCK &,8,462,.66,4 ‘BLOCK 6,6,463,61-7 ‘REMark window 
FILL @ :OVER @ :INK @ ‘SBYTES MDVI_LightHouse_Scrn, 131972,32768 
PAPER #@.0 :INK #@.7 <CLS #8 «STOP 
REMark ~---~>6 te++sEREEK High Resolution Dump RIKKI ++ ee esaes~ 
DEFine PROCedure SerDump 
DIM dats<3,64) 
screentl3ig72 
OPEN 93. serine 
REPeat loop 
FOR col@i FO 64 
Gat8C2,colSCHRSCPEEK( screen?) ‘REMark Creen 
datse l,cot osCHRS( PEEKS screenti >) (REMark Red 
daté03,col *CHRE PEEK( screen &&PEEK( screenti >> i RENark Blue 
ecreen=screentZ 
END FOR col 
PRINT #3, CHRSC 27 2&"C"GCHREC 64); 
FOR n=l YO 3:'PRINT #3, dat#en.4 TO; 
JF gcreend=163839 THEN EXIT loop 
END REPeat loor 
BEEP 189,1 
END OEFing ScrDump 


L 

Int Q feport INTERNATIONAL QL REPORT 

S The Definitive Information Source 

v 2 

If you had been a subscriber during the last year you would 
have received advanced information on the latest hardware 
developments for the QL, including the QL HDD-Card, 
FLP/RAM level 2 Replacement Eprom, the new Miracle 
Systems Graphics Card, Minerva, Exeqtor and the QL 
ROM-Card. Articles contributed by QL Users from around the 
world included, How to Setup the 3.2 Meg. Floppies, 
Programming in "C", P.D. Software, Program Listings, A 
Multi-part Toolkit II Tutorial, Tips & Hints, and Reviews of 
Software. In addition, subscribers were offered the opportunity 
to participate in Group Buys of hardware at substantial savings. 
These buys, included Gold Cards, 3.2 Meg. Drives, Keyboard 
Interfaces and 32K Buffer Chips for Panasonic Printers. 


As we enter our second year and continue to grow, we hope 
you'll grow with us. 


The International QL Report is published 4 - 6 times per year, 
and is available from SeaCoast Services, 15 Kilburn Court, 

Newport, RI 02840. Subscription rates are $14.95 in U.S., $16.95 
in Canada, and $28.00 for the rest of the world (U.S. funds only 


please). 
ene — 


QL Hacker's Journal 


Supporting All QL Programmer's 


Ed Grey Enterprises 


QUALITY COMPUTER PAGDUCTS 


On Line Support: 
The Grey Matter BBS 
213-9716260 (CALAN) Tt 


Sales and Information: 
(213) 759-7406 


P.O. Box #2186 
Inglewood, CA 90305 


4773 W. Braddock Rd. #3 
Alexandria, VA 22311 
(103) 820-657 


Timothy Swenson, Editor 


Ts * Hardware * Software . CPIM 


tswenson@dgis.dtic.dla.mil 


MDM 


ENTERPRISES 


TIMEX & SINCLAIR 
COMPUTER SPECIALIST 


DUANE MALBURG 
(S17) 781-1680 
2340 S. GRAHAM ROAD 
SAGINAW. Mi 48603, 


MICHAEL DAVIS 
(517) 791-1088 
706 S. MASON 

SAGINAW, MI 48602 


32 


fim RSQ 


MCME ELECTRIC MORET LE 


Box 18093 Austin TX 78760 
Ph (512) 451-5874 


INSTRUCTION MANUAL PROGRAM CAD#3 


For EPSON 9 pin printers or equivalent 


Using LKDOS Disk Operating System 


Copyright 1989 William J. Pedersen 
All rights reserved. 


The WIDJUP Co. is proud to present the most powerful, 
flexible, and user friendly printed circuit board design 
program available for the TIMEX TS2@68 as of this date. 


It lets ambitious people create their own electronic 
hardware without demanding access to industrial facilities 
or photo laboratories. 


At the same time, this program does fully professional 
work suitable for small industry. Though CAD#3 is self- 
contained, it is compatible with several specialized 
companion utilities like “TRACE MASTER", which writes 
DATA PILES for CAD#3 using higher level graphic language. 


The WIDJUP Co. 
1120 Merrifield S.E. 
Grand Rapids, MI 49507 
Tel: (616) 452-7004 


33 


TABLE OF CONTENTS 


SUBJECT PAGE 


MES Fa KERR, SDE ae SAREE Re RA SET oe ck 2 
MAIN MENU occ ce cca eter cence t eee ee rene ese et eee 2 
LOAD PCB DATA .. 3 
LOAD SUB-MENU 2... 6. ee cece cece ee teeter t eee eeee 3 
SAVE PCB DATA .... " oe ee eee ee ea 3 
EDIT PCB DATA ....cceeeeereeceneeser eter tetteeee 4 
ADD IDEM -sevisceredie aiaig a en gv oa ane a gia wie nal are ee ee aS 4 


ADVANCED TECHNIQUES ......- See ence nce eerste een e ne ees 11 


TEXT EDITOR sso (cessive PRs mts Hege do Ses Saha se ES i 


INTRODUCTION 


This program makes use of LARKEN LKDOS. This version is for EPSON and 
compatible 9-pin printers. Versions are available for OLIVETTI INKJET, 
EPSON compatible printers, and using JLO SAFE DOS. Fine results are 
obtained with the OLIVETTI PR2309, which provides total black-white contrast 
without needing a brand new printer ribbon. CAD#3 makes use of file types 
Program, Data, and Code. Piles created using CAD#3 are transferable to 
other DOS systems via tape. The other system must be able to store the same 
type records. 

Though this program assumes double density 2 sided, 5 1/4 disks, other 
formats are readily accommodated by changing default parameters. A 

All operations are menu supported, system initialization is automatic, 
and no LKDOS commands are required once the program is loaded. 

The ability to monitoring your work as it proceeds is provided by a 
DISPLAY feature. This saves much time, paper, and aggravation. 

Operations have been made as easy to use as can be, considering the 
complexity of the task at hand. The temptation to unnecessarily standardize 
operations (thus limiting what your ingenuity can accomplish) has been 
resisted. No compromise has been taken with quality of results. Best use’ + 
of printer performance is made, though this creates a heavy computation load 
for the computer. If you want superior results, you have to do the work! ' 

Exceptional editing procedures let you avoid doing work over and over 
again. Now THAT is user friendly! 


EXTENDED FEATURES 


CAD#3 provides several features in addition to what is available in 
LKDOS extended BASIC. To be specific, WIDJUP programs LPRINT #5, LLIST #5 
(Which does formatted and indented LISTings), screen dumps, and several 
graphic windows for LPRINTing-single and double size lines. 

They say that nothing is fool-proof to a sufficiently talented fool. 
Well, CAD#3 has been designed to require considerable talent to foul it up, 
AND to recover even if it has been. Error trapping is used extensively. 

DISPLAY is limited to 4 x 5.4 inches. This does not prevent making 
boards longer than 5.4 inches. It is simply not possible to DISPLAY the 
whole board at once. J ' 


MENUS' 
MAIN MENU ; 
The WIDJUP Co. (C) 1989..CAD#3 
MAIN MENU 
FUNCTION DESCRIPTION 
1 LOAD PCB Data Array 
2° CREATE New PCB 
3 EDIT PCB Data Array 
4 DISPLAY PCB 
5 DIRECTORY Drives 0-4 
6 REPORT LPRINT Data 
7. GENERATE PCB Image 
8 COPY From Image File 
9 SAVE PCB Data Array 


Select by #" " 


This is what you see after CAD#3 is loaded. It reappears after 
selected operations are completed. 


35 


CAD. BO Listing 7714/91 


1 ON ERR GO TO 9885: GO TO Main 
12 LET a=INT al: IF a<O THEN LET a=0 
13 IF a>879 THEN RETURN 
14 LET b=INT (b1-1): IF a>b THEN RETURN 
15 IF b>879 THEN LET b=879 
16 LET c=INT (a/256): LET a=a-256xc: LET d=INT (b/256): LET b= 
b-256%*d 
17 LET s=f-8xc: IF c=d THEN PLOT a,s: DRAW b-a,0: RETURN 
18 PLOT a,s: DRAW 255-a,0: LET s=s-8: GO TO 22+c-d 
19 PLOT 0,s: DRAW 255,0: LET s=s-8 
20 PLOT 0,s: DRAW 255,0: LET s=s-8 
21 PLOT 0,s: DRAW b,0 
22 RETURN 
44 LET j=ztkkti,7) 
45 GO SUB 12: IF j<@ THEN RETURN 
46 LET j=j-1: LET Al=Alt+y(kk,8): LET Bi=Bl+y(kk,&): GO TO 45 
100 IF y>y(kk,5> THEN GO TO 201 
101 LET al=yQkk,2): LET bl=y(kk,3): GO TO 44 
120 IF y>y(kk,5) THEN GO TO 201 
121 LET a=C(y(kk, 5)+y(kk,6))/2: LET c=y(kk,4): LET b=y(kk,13>: L 
ET s=bty(kk, 12)*(y-a): LET al=s-c: LET bil=ste: GO TO 44 
130 IF y>y(kk,5) THEN GO TO 201 
131 LET d=y(kk,2): LET j=y(kk,3); LET c=y(kk,4): LET a=(y(kk,5) 
+y(kk,6))/2: LET b=y(kk, 13) 
132 LET s=bty(kk,12)*(y-a) 
133 LET al=s-c: IF al<d THEN LET al=d 
134 LET bi=stc: IF b1>j THEN LET b1=j 
135 GO TO 44 
140 LET b=Cy(kk, 5) +y(kk,6))/2: LET-c=y(kk,4): LET d=y-b: LET s= 
(i-dxd/c/e): IF y>y(kk,5) OR s<z THEN GO TO 201 
141 LET a=y(kk,13): LET s=ckk1*SQR s: LET al=a-s: LET bl=ats: G 
O TO 44 
150 LET b=CyCkk, 5)+yCkk,6))/2: LET cuy(kk,4): LET d=y-b: LET s= 
(1-dxd/c/c): IF y>y(kk,5) OR s<z THEN GO TO 201 
151 LET a=y(kk,13): LET s=ckk1*SQR s: IF s>y(kk,12) THEN LET s 
=y (kk, 12) = 
152 LET al=a-s: LET bi=at+s: GO TO 44 
160 LET b=Cy(kk,5)+y(kk,6))/2: LET c=y(kk,4): LET d=y-b: LET s= 
(l-d*d/c/c): IF y>y(kk,5) OR s<z THEN GO TO 201 - 7. 
161 LET s=cky(kk,3>*SQR s ~ 
162 LET a=y(kk,13): LET ai=a-s: LET bl=a+s: GO TO 44 
170 LET c=y(kk,4): LET d=y-y(kk,6)-y(kk,12): LET s=1-d%d/c/c: 1 
F y>y(kk,5) OR s<z THEN GO TO 201 
172 LET s=cky(kk,3)>xSQR s 
173 LET a=y(kk,13): LET al=a-(s AND y(kk,2)>3): LET bl=a+(s AND 
Cy(kk,2)<5)): GO TO 44 
201 LET Del=y(kk,10): LET y(kk,5)=y(kk,5)+Del: LET y(kk, 6)=y(kk 
,6)+Del: LET y(kk,9)=y(kk,9)-1: RETURN 
205 GO SUB 225: LET t=INT (C(ff/32) AND Uflag): LET y=32kt-i: LE 
T kk=z 
206 GO SUB 225: LET t=t+i: IF NOT Uflag THEN GO TO 212 
209 LET h$=f$¢ TO 111>+STR& t4+".CZ": RANDOMIZE USR LK: GO TO Gd 
rive: POKE 23728,LK: RANDOMIZE USR LK: LOAD h$ CODE : RANDOMIZE 
USR LK: GO TO Drive 
212 FOR L=z TO 31: LET y=y+i: IF y<ff THEN GO TO 217 
213 LET £=175-L-24xINT (L/8): LET u=0: LET kk=0 
214 LET u=utl: IF y(u,9) THEN IF y>yCu,6) THEN LET kk=u: INVE 


36 


RSE y(u,1l1>: GO SUB ylu,1)> 

215 IF u<Last THEN GO TO 214 

216 IF NOT kk THEN GO SUB 225 

217 NEXT L: INVERSE z 

218 IF Gmode=ii OR Gmode=iv THEN GO SUB 500 

219 IF Gmode>ii THEN LET h$=f£$( TO iii)+STRS t+’.CZ": PRINT AT 
11,16;h$,AT 15,16;"Scale= ";Scale: RANDOMIZE USR LK: GO TO Gdri 
ve: RANDOMIZE USR LK: SAVE h$ CODE 16384,4112: RANDOMIZE USR LK: 
GO TO Drive 

220 CLS : PRINT AT 18,i1;£%;"%*";scale'"” Frame #”;t;" done.” 

221 LET s=0: FOR n=1 TO Last: LET s=sty(n,9): NEXT n: IF NOT s 
THEN LET Uflag=z: RETURN 

222 IF (t=76 OR t=152) AND Gmode>ii THEN GO SUB 9093 

223 GO TO 206 

225 LET f£f=4096: LET s=1 

226 IF y(s,9) THEN IF y(s,6)<ff THEN LET ff=y(s,6) 

227 IF s<Last THEN LET s=sti: GO TO 226 

228 LET f£f=ff AND ff>0: RETURN 

300 FOR n=z(i,i) TO here STEP -i: FOR k=i TO 11: LET z(nt+ii,k>= 
z(nti,k>: NEXT k: NEXT n: LET z(i,id=z(i,id+i: RETURN 

302 FOR n=here TO z(i,i)-i: FOR k=i TO 11: LET z(nti,k)=z(n+til, 
k): NEXT k: NEXT n: LET z(z(i,i)+i,1)=z: LET z2(i,io=zCi,io-i: IF 
here>z(i,i) THEN LET here=z¢i,i> i 


303 RETURN 

305 PRINT INK 8; PAPER 8;AT ii,11;"LAST ";z¢i,i);" ";AT 1i,xx 
3" SELECT "SAT i1,27;Here;: FOR k=left TO lefttiv: LET b=6*(k 
~left)+2: LET d=k+i: LET c=(z(d,6)-1) AND (z(d,1)=10): PRINT AT 
4,b;k;" ";AT 5,b; Q8(z¢d, 1) t+1te) 


306 FOR n=1 TO 11: LET a=INT (z¢(k+1,n)*1000): PRINT INK 1+(k=H 

ere)+(6 AND k>z(1,1>>;AT n+6,b6;a/1000: NEXT n: NEXT k aan 
307 PLOT 0,168: DRAW 0,-150: DRAW 254,0: DRAW 0,150: DRAW -254, 

0: RETURN i 
450 LPRINT ":G89;32;22;2:2";: RANDOMIZE USR (Ld0+47): RETURN 
451 LPRINT "'/7'G89;32;22;2:2";: RANDOMIZE USR (Ld0+47): RETURN 
453 POKE 141,64: POKE 1d2,64: POKE 1d3,8: POKE 1d4,128: POKE ld 

5,80: LPRINT "!G89;64;1;3!2";: RANDOMIZE USR (Ld0+45): RETURN 
500 POKE 141,110: POKE 142,128: POKE 1d3,32: POKE 1d4,0: POKE 1 

@5,64: LPRINT "'G1;110;4;1:2";: RANDOMIZE USR 27040: RETURN 

1200 RETURN 

1210 LET a=z(ss,v)/ii: LET b=(z(se,ilid+z(ss,iv))/ii: LET c=ABS 

(b-z(ss,iv)) 

1211 LET y(n,i)=LK: LET y(n, 11)=(b-o) *k¥: LET y(n, 111)=Cb+0) *KY: 
LET y(n, v)=(z(ss, 1i)ta)*kX-i/ii: LET y(n, six)=(z(ss, 1i)-ad*kXt+i 

fii: GO TO rr 

1220 LET b=z(ss,ii): LET c=z(ss,v)/il: LET a=(z(ss,1ii)+z(ss,iv> 

fii: LET a=ABS (z(ss,iii)d-z(ss,iv))/ii 

1221 LET y(n,i)=LK: LET y(n, ii)=(b-c)kkY: LET y(n, L£495 Coto  kkY 
LET y(n, v)=(atd) *kX-1/ii: LET y(n, Six)=(a-d)*kkXt+i/ii; GO TO rr 

1230 LET b=z(ss,ii): LET d=z(ss,iv)/ii: LET c=z(ss,w)/ii 

1231 LET y(n,1i)=LK: LET y(n, i1)=(b-d)x*kY: LET yn, 144)= (bt) &kY: 
LET y(n, v)=(z(ss, iii) +c) *kX-171i: LET y(n, Six) =(z (ss, LL 1)-c)'*#kKX 

+4/ii: GO TO rr E 

1240 LET b=z(ss,ii)? 

1241 LET y(n, i)=160: LET y(n,iii)=z(ss,v)kk1: LET y(n,iv)=z(ss,1i 

v)*kX: LET y(n, v=(z2(ss,iii)+z¢ss, iv) )*4kX-i/ii: LET y(n, sixd=(2¢ 

ss,ilid-z(ss,iv))*kX+i/7ii: GO TO rr 

1250 LET a=(z(ss,iv)+z(ss,ii))/ii: LET c=(z(ss,iv)-z(ss,ii) ii: 
LET d=z(ss,v)/ii: LET b=z(ss,iiid+ckSGN d: LET w=ABS c+ABS d 

1251 LET y(n,i2=130: LET y(n,ii)=(b-w)*kY: LET y(n, ii1)=(Cb+tw) tkY 
LET y(n, iv)=(ABS d)*kD-i/ii: LET y(n, v)=Catw)*kX-i/7ii: LET y(n 


37 


»Six)=(a-w)kkX+i/7ii: LET y(n,12)=k1%*SGN d: GO TO rr 

1260 LET a=(z(ss,iv)+z(ss,ii))/ii: LET c=(z(ss,iv)-z(ss,i1))/11: 
LET d=z(se,v)/ii: LET b=z(ss,iii)+ckSGN d: LET w=-ABS ct+ABS d 
1261 LET y(n,i)>=120: LET y(n,iid=z: LET y(n,iii)=879: LET y(n,iv 
.=(ABS dkkD)-i/7ii: LET y(n, v)=Catw)kkX-i/ii: LET y(n, six) =(a-w)* 
kX+i/ii: LET y(n, 12)=k1xSGN d: GO TO rr 

1270 LET c=z(ss,ii): LET al=z(ss,111): LET d=z(ss,iv): LET bi=z¢ 
ss,v): IF c=d OR al=b1 THEN GO TO 1310 

1271 LET a=(al+bl)/ii: LET b=(ctd)/ii: LET Tan=(bi-al)/(d-c): LE 
T d=ABS (d-c)/ii: LET c=ABS (bli-al>dvilt 

1272 LET w=z(ss,six)/ii: LET An=ATN Tan: LET Sin=SIN An: LET ew= 
ABS (wkSin): LET eh=wkCOS An 

1273 LET y(n, i)?=130: LET ytn,ii)=(b-d-ew)xkY: LET yin,111)=(Cbtdt 
ew)kkY: LET y(n,iv)=ABS (w/SinkkY)-i/7ii: LET y(n,v)=Catcteh) tkX— 
ivii: LET y(n,six)=(a-c-eh) XkX+i/ii: LET y(n,12)=ki1/Tan: GO TO r 
P 

1280 LET b=z(ss,ii): LET a=z(ss,iii): LET h=z(ss,iv) 

1281 IF h<=z THEN GO TO 1310 

1282 LET y(n,i)=140: LET y(n,iv)=hxkxX: LET y(n,v)< Cat. 74¢h) *kX-i 
7ii: LET yn, six)=(a—. 75¥b) *kXt+i7ii: GO TO rr 

1290 LET b=z(ss,ii): LET a=z(ss,iii): LET h=z(ss,iv) 

1291 IF h<=z THEN GO TO 1310 7 

1292 LET y(n,i)=150: LET y(n,iv)=h*kX: LET y(n,v)=(ath> ¥kX-i/ii: 
LET y(n,six)=(a-h)xkXt4/ii: LET y(n,12)=.75*h*kY: GO TO rr 

1300 LET b=z(ss,ii): LET a=z(ss,iii): LET c=z(ss,iv): LET d=z‘ss 
+Y: LET w=z(ss,six): LET al=(w>i AND w<7): LET bl=w>v OR w<ili 
1301 LET y(n, i)=170: LET y(n,ii)=w-(iv AND w=8): LET y(n, iii>=dx* 
kil: LET y(n, iv)=ckkX: LET y(n, v)=(at+(c AND b1))*kX-(.5 AND b1): 
LET y(n, six)=(a-(c AND a1))«kX+(.5 AND ald: LET y(n,12)=(ckkX-17 
ii) AND al 

1302 LET y(n,7)=z(ss,7): LET y(n, 8)=z(ss,8)*kY: LET y(n, 9)=z(ss, 
9):-LET y(n, 10)=z(ss,10)*kX: LET y(n,11)=z(ss,11): LET y(n,13)=b 
x*kY: RETURN 


1310 PRINT AT 10,iii;” BAD DATA. ITEM #";ss-i;" ";: PAUSE z: ON 
ERR GO TO Main: LET n=n/z 

3020 CLS : PRINT" WIDJUP DATA LOAD SERVICE Drive ";Ddri 
ve,,"";AT iv,i4i;"DATA ARRAYS are usually stored on DRIVE 0."''" 
Enter new drive # or simply. ENTER to accept.” 

3021 ON ERR RESET : INPUT "Drive #? ";I1$: IF I$="" THEN LET n= 


Ddrive: GO TO 3023 
3022 ON ERR GO TO 3021: LET n=VAL I$: ON ERR RESET : LET Ddriv 


e=n 


3023 CLS : PRINT " WIDJUP DATA LOAD SERVICE ”: RANDOMIZE U 
SR LK: GO TO n: RANDOMIZE USR LK: CAT "*.AZ",: PRINT AT i,z;" D 
rive ";Ddrive;"; "; OVER ij"",,""%,;AT 18,z;"Extension .AZ will be 


appended. ENTER to QUIT” 

3024 INPUT "Which ? ";I$: IF LEN I$=z THEN RETURN 

3028 LET FS=I$+".AZ": RANDOMIZE USR LK: LOAD I$+". AZ" DATA z(): 

RANDOMIZE USR LK: GO TO drive 

3029 LET here= RETURN 

3041 IF z¢i,i)=z THEN GO TO 3060 

3042 CLS : PRINT AT 8,8;" WARNING "''" File ";f$;" is present.” 
''™ Continuing will destroy file.": INPUT "Continue? Y/n ";1$: I 
F I$="Y" OR I$="y" THEN DIM z(100,11): LET f$="No Bata": GO TO 
3060 

3043 PRINT ''” CANCELLED"; RETURN 

3060 LET here=here-(here AND f$="No Data"): LET qf="litiixxit: 
3061 GO SUB SE: GO TO HK 

3063 INVERSE pS: PLOT pl,p2: DRAW p3,p4: INVERSE z: RETURN 


38 


3064 PLOT pl,p2: DRAW pS,z: DRAW z,p4: DRAW -p3,z: DRAW z,-p4: 
ETURN 

3065 CIRCLE pl, p2,p3: RETURN 

3066 PLOT pl,pé@: DRAW p3,p4: RETURN 

3067 PLOT pl, p2: DRAW i,iii: DRAW 1,-iii: DRAW -i,-iii: DRAW -1i 

iii: RETURN 

3068 PLOT pi, pe: DRAW iii,i: DRAW iii,-i: DRAW -iii,-i: DRAW -ii 
i,i: RETURN 

3069 LET c=PI/ii: LET a=INT (Cp?-1)/ii): LET b=INT (p7/iidti: FO 
R k=akc TO btc STEP 1/p3: PLOT pl+p3*COS k, p2+p3*SIN k: NEXT k: 

RETURN 

3080 GO SUB 4010 

3081 FOR n=ii TO z¢i,idti 

3082 PRINT AT 18,z;"#";n-i: LET a=z(n,i>: IF a=z THEN PRINT AT 

11,5; OVER i;” BAD or NO DATA " 

3063 IF a=i THEN LET pl=L4z(n,ii)t+xo: LET p2=Lxz(n,iii)+yo: LET 
p3=z: LET p4=Lx*(zin, 4)-z2(n, iii)): LET pS=z(n,1i1): LET bb=3063 
3064 IF a=ii THEN LET pl=L*z(n,iii)+xo: LET p2=Lkz(n,ii)tyo: LE 
T p3=Lx(z(n,4)-z(n,iiid): LET p4=z: LET pS=z(n,11): LET bb=3063 
3085 IF a=iii THEN LET p2=Lxz(n,ii>: LET pl=Lxz(n,iii>: LET p4= 
Lxz(n,4): LET p3=L*z(n,5): LET p2=p2-p4/iityo: LET pi=pi-p3/iitx 

0: LET bb=3064 ; 
3086 IF a=iv THEN LET pl=L*z(n,iii)>+xo: LET p2=Lkz(n,iid+yo:' LE 
T p3=Lkz(n,4): LET bb=3065 ; 
3087 IF a=v OR a=six THEN LET pl=Lxz(n,ii)+xo: LET p2=L*z(n, iii 
d)+yo: LET p3=L*(z(n,4)-z(n,i4)): LET p4=SGN z(n,5)x*p3: LET bb=30 
66 u 

3088 IF a=? THEN LET p4=Lx(z(n,4)-z(n,ii)>: LET p3=L¥(z(n,5)-z¢ 
n,iii)d): LET pi=Lez(n,iii>d+xo: LET p2=Lxz(n,ii)t+yo: LET bb=3066 
3089 IF a=8 THEN LET pl=L*z(n,iii)-itxo: LET p2=L*z(n,iidtyo: L 
ET bb=3067 

3090 IF a=9 THEN LET pl=Lxz(n,iii?-iiit+txo: LET pe=Laz(n,iirtyo: 
LET bb=3068 

3091 IF a=10 THEN LET pl=L¥z(n,iii)+xo: LET p2=Lkz(n,iidtyo: LE 
T p3=Lkz(n,4): LET p7=z(n,6): LET bb=3069 

3092 LET yy=p2: LET b2=z(n,7): LET a2=z(n,9): LET a3=b2 

3093 ON ERR GO TO 3094: GO SUB bb: LET p2=p2+Lx*z(n,8): IF b2>1 
THEN LET b2=b2-1: GO TO 3093 

3094 ON ERR GO TO 3095: LET p2=yy: LET b2=a3: LET pl=p1+L*z(n, 1 
0): IF a2>1 THEN LET a2=a2-1: GO TO 3093 $ ‘ 

3095 ON ERR RESET : NEXT n: RETURN 


3100 CLS : PRINT ” WIDJUP DIRECTORY SERVICE DRIVE TYPE 
aan 
a) ' 
3101 PRINT '” 0 DISK DRIVE"''" 1 DISK DRIVE"''" 2 
DISK DRIVE”''" 3 DISK DRIVE"?’'" 4 RAMDISK"''"” 
5 QUIT " 
3102 PRINT '” Fault conditions are sensed"," and displayed for 


your action.” 

3103 ON ERR RESET : INPUT "SELECT ";1$: IF NOT LEN I$ THEN LET 
1g$="5" 

3104 ON ERR GO TO 3103: LET n=VAL I$: ON ERR RESET: IF n<z OR 
n>S THEN GO SUB Err: GO TO 3103 

3105 IF n=5 THEN RETURN 

3106 IF n=4 THEN GO TO 3118 

3107 PRINT AT 18,0,,,,,,,,: OUT 8,2°(n+1): OUT 16,208: PAUSE 10 
OUT 16,0: PAUSE 90: LET tst=IN 16: IF tst-2kINT (tst/2) THEN P 

RINT AT 20,2;"DRIVE NOT AVAILABLE”: PAUSE 120: GO TO 3100 

3108 OUT 16,95: PAUSE 90: LET tst=IN 16: IF tst-2kINT (tst/2) TH 

EN PRINT AT 18,2;"DRIVE IS NOT READY’'” Check for open door, mi 

ssing or inverted disk. Correct problem and CONTinue.”: OUT 8,4 


39 


PAUSE 10: OUT 8,3: STOP : GO TO 3107 
3109 LET bit=INT (tst/64): IF bit-2xINT (bit/2) THEN PRINT AT 1 
8,2;"(DISK IS WRITE PROTECTED)": PAUSE 60 
3110 LET bit=INT (tst/16); IF bit-2xINT (bit/2) THEN PRINT AT 1 
9,2;"UNFORMATTED OR FOREIGN DISK"," Insert correct formatted dis 
k and CONTinue.”: STOP : GO TO 3107 


3116 CLS : PRINT ” WIDJUP DIRECTORY SERVICE ": RANDOMIZE U 

SR LK: GO TO n: RANDOMIZE USR LK: CAT '",: PRINT AT i,z;" Drive 

"oni: ; OVER 437,95 

3119 RANDOMIZE USR LK: GO TO drive: RETURN 

3120 INPUT "Comment, Date? ";a$: LPRINT #5'"DATA REPORT... "ja 

3121 GO SUB 3080: GO SUB 451: LPRINT CHRS 10 

3122 LET Last=Z(i,1): FOR L=ii TO Lastt+i: PRINT AT xx,z,,,,AT xx 

,»Z;: LET c=L-1: GO SUB 3128: RESTORE z(L,i)+3200: READ 1%: PRINT 
INVERSE z(L,11);" ";1$;" "%;: PRINT " ";: READ k: FOR k=ii TO k 


+i: READ I$: PRINT I$;: PRINT z¢(L,k);: NEXT k: GO SUB 3129 

3123 PRINT TAB 30;"Cx, yif";2¢(1,9);"k";2z01,79;"1, Pitch(";z«1,10> 

7 3%5201,8);"1": GO SUB 3129 

3124 IF c=28 OR c=73 THEN LPRINT ''''' 

3125 NEXT 1: PRINT "END OF DATA”,,,,: GO SUB 3129: RETURN 

3128 PRINT " " AND c<LK;” " AND c<10;c;" "3: RETURN 

3129 GO SUB 453: PRINT AT xx,z,,,,AT xx,z;: RETURW 

3140 ON ERR RESET : CLS : PRINT " WIDJUP GENERATE SERVICE 
TEED oe 0, QUIT "''" 1 Screen Only"’'" 2 LPRINT’''" 3) FIL 

Ev''' 4 LPRINT & FILE” = 

3141 INPUT "Select by # ";I$; OW ERR GO TO 3140: LET Gmode=VAL 

(?0"+I$): ON ERR RESET : IF Gmode<z OR Gmode>iv THEN GO TO 314 

1 

3142 PRINT '” Mode is #”°;Gmode''" 0.73 Scale will print an"’’" 
overlay matching the REPORT.” 

3143 IF NOT gmode THEN PRINT ''”CANCELLED": RETURN 

3144 RANDOMIZE USR LK: LOAD "“y().A1" DATA y(): LET Uflag=z: IF -¢ 

mode>ii THEN INPUT "New or Update? ”;I$: IF LEN I$ THEN IF I8¢ 
TO i)="U" OR I$¢ TO i)="u" THEN LET Uflag=i 

3145 IF NOT Uflag THEN INPUT "SCALE? ";Scale: GO TO 3148 

3146 LET iS$=f£$¢€ TO 1411)+"1.CZ": RANDOMIZE USR LK: GO TO Gdrive: 

RANDOMIZE USR LK: LOAD i$ CODE 

3147 LET i$="": FOR n=22 TO 28: LET i$=i$+SCREENS$ (15,n): NEXT n 

: LET Scale=VAL i$ : 

3148 LET kY=Scalex110: LET kX=kY/k1: LET kD=kY*1.414: PRINT #1;” 

WORKING " 

3149 LET Last=z(i,i?: FOR n=i TO Last: LET ss=nt+ti: LET nn=2(mti, 

i): IF nn<i OR nn>10 OR nn<>INT nn THEN PRINT AT 21,51x;"BAD D 

ATA AT ";3000+n;"": STOP : RETURN 

3150 LET Mode=1200+10%*nn: GO SUB Mode: NEXT n: CLS : GO TO 205 

3161 CLS : RANDOMIZE USR LK: GO TO Gdrive: RANDOMIZE USR LK: CAT 
“*.Ccz", 

3162 INPUT "FILE(no ext)?";18$;" Count? ";bb: LET I$=I$t” 

LET I$=I$¢ TO iii): CLS 

3163 FOR L=i TO bb: LET H$=I$+STR$ L+".CZ" 

3164 PRINT AT 18,z: POKE 23728,LK: RANDOMIZE USR LK: LOAD H$ COD 

E 

3165 IF PEEK 23728=LK THEN GO TO 3168 

3166 IF PEEK 23726=(LK+i) THEN IF L=77 OR L=153 THEN PRINT AL. 

18,11;" INSTALL WEXT DISK ": GO SUB 90904: PRINT AT 18,0,,,,,,.,, 
GO TO 3164 

3167 RANDOMIZE USR LK: GO TO drive: RETURN 

3168 GO SUB 500: NEXT L 

3169 RANDOMIZE USR LK: GO TO drive: RETURN 

3180 ON ERR RESET : CLS : PRINT " WIDJUP SAVE SERVICE 


40 


oy 


Existing File is ";F8,"" ' 7 
3181 PRINT ''" 1 KEEP SAME NAME"'''" 2 RENAME FILE (1-6 CHRS)" 


ae (Extension .AZ 1s provided.)"''" 3 QUIT ": IB F$="No Data 
" THEN PRINT '''" NO FILE EXISTS TO SAVE "; RETURN 


3182 INPUT "Select by # ";I$: ON ERR GO TO 3180: LET a=INT VAL 
c’o"'+1$); ON ERR RESET : IF a<1 OR a>3 THEN GO TO 3180 

3183 IF a=3 THEN RETURN 

3184 IF a=1 THEN LET I$=F$: GO TO 3187 

3185 INPUT "File Identifier? ";I$: LET I$=I1$+".AZ": PRINT AT xx, 
12;1$: IF LEN 1$<4 OR LEN I$>9 THEN PRINT "INVALID FILE NAME, T 
RY AGAIN": PAUSE 120: GO TO 3180 

3186 LET FS=I$ 


3187 PRINT AT 20,3,” SAVING "; 18;"",: RANDOMIZE USR 100: SAVE I$ 
DATA z(): PRINT AT 20,3; 1$;" SAVED",,: RETURN 

3201 DATA "i",iv,"X0=","%; Y="," to ","; Width=" 

S202 DATA "i",1iv,"YO=","; X="," to ","; Width=" 

3203 DATA ")",4v,"¥YO=",",X0=","%; Her, were 

3204 DATA "i" Viv, "Yo=" 1, Xo=",", Rx=",'', Ry/Rx=" ' 
3205 DATA oye AND z(l,vw><z>+C"i" AND z(1, v)>z), iv, "X1=", ", Yas 
1"; X2=","; Width=" ' 

3206 DATA ("i AND z(1,v)<z)+C"l" AND z(1l,v)>z),iv,"X1=",", YL=" 
1"; X25","; Width=" : 
3207 DATA "!",v,"¥1=",", X1s" ", X2=",%; Width=" 

3208 DATA "'",4i1,"Y ", Xx =" 

3209 DATA "i", 4ii,"YO=",", X0=”, =" 

3210 DATA CHRS (155+2(1, six)», vi kom! 1, YOR", "|; Reet," Ry/Rx=" 
1”; Quad=" 

3230 CLS : PRINT” WIDJUP EDIT SERVICE",""'''" 1 | Line," 
7 ' Joget’s 2 } Lines," 6 1 Jogtt'" 3 + Box"," 9 + S21 
ant"''" 4} Circle","10 1 Pad’'?™ 5 | 45 Deg","11 : Pad” 
“6 i 45 Deg”’,"12 {> Quadrant”’''" Items oriented as they a 


ppear DISPLAYED, not as printed." 

3231 INK 2: FOR n=O TO 5S: PLOT 30,62+16%n: DRAW 0,11: DRAW 11,0: 
DRAW 0,-11; DRAW -11,0: NEXT n: FOR n=0 TO 5: PLOT 158,62+16xn: 
DRAW 0,11: DRAW 11,0: DRAW 0,~-11: DRAW -11,0: NEXT n: INK 0: RE 


TURN 

3301 DATA ":"," 1 At X="," 2 y="," 3 To Y="," 4 Wi 

dth="," t 

3302 DATA "!", At Y="," 2 x="," 3 To XS"," 4 Wi 

ath="," 0 -nene 

3303 DATA "i"," 1 at Y="," 2 x="," 3 Highy="," 4 wi 

dexeo o> .  Seees ” 

3304 DATA ":"," 1 at Y="," 2 xe"," 3 Rx="," 4 Ry 

/Rx="," 

3305 DATA ":"," 1 From X="," 2 Y=", 3 To X=", 4 
Width="," 0 ----~ z 

3306 DATA "i"," 1 From X="," 2 ye"," 3 To X="," 4 
Width="," 0 ---~~ a 

3307 DATA "i", 1 From X="," 2 Y="," 3 «To X="," 4 
Width="," 0 ----- 

$308 DATA "i," 1 From X="," 2 3 To xXs"," 4 
Width="," 0 ----- 

3309 DATA ":"," 1 From Y="," 2 From X="," 3 To Y=","" 4 
To X="," 5 Width=" 

S310 DATA "i"," 1 At ¥="," 2 X="," 3 Radius="," - 

Beewian ee S ” ; 

3311 DATA "i"," 1 At Y="," 2 x="," 3 Radius="," = 

ee ee ” 

3312 DATA CHRS (155+z(c,6))," 1 At Y="," 2 X="," 3 

Rx="," 00 4 Ry/Rx="," 5 Quads” ; ae 


41 ‘ 


4010 CLS : 


WV z,-162 


LET L=40: 
: DRAW 214,2: 


LET yo=12: LET xo=36: 
DRAW z,162: DRAW -214,2z: 


PLOT xo-i, yot161: DRA 
PRINT AT z,ii1;"4 


"SAT 5,444;73"; AT 10,441; "2"; AT 15, 444571"; AT XX, 141;"0"; AT 21,4 


70 1 2>xX 3 4 5";AT 12,44;7¥Y""" 7; 
4011 FOR n=12 TO 173 STEP 4: PLOT 33,n: DRAW ii,z: PLOT 249,n: D 
RAW 44,z: NEXT n: FOR n=36 TO 248 STEP 4: PLOT n,9: DRAW z,ii: P 
LOT n,173: DRAW z,ii: NEXT n 

4012 FOR n=i TO LEN f$: PRINT PAPER 5;AT n,i:f$(n): NEXT n: PRI 
NT AT 20,z;: RETURN 

4060 IF z(i,i)<i THEN LET F$="No Data” 

4061 BORDER 7: CLS: PRINT *” WIDJUP EDIT SERVICE"," ";FS,, 
4062 PRINT AT xx,4;"ESCFIXSELADD < PUTCUT > MAPDEL";AT 21,1;" 1 
2. 3 8 i ee es oe 

4063 FOR N=7 TO 230 STEP 24: PLOT n,z: DRAW z,16: DRAW 24,z: DRA 
Wz,-16: DRAW -24,z: NEXT N 

4064 REM spare 

4065 LET left=here-ii: IF left<i THEN LET left=i 

4066 PRINT AT 7,Z,ysyserestvaeveeeeese +? GO SUB He 

4070 RESET : LET a=CODE INKEYS 

4071 THEN GO TO 4096 

4072 THEN GO TO 5000 

4073 THEN GO TO 5010 

4074 THEN RETURY - 
4075 THEN LET here=here-(i AND here>i): GO TO WE 

4076 THEN LET here=heret(i AND here<z(1,1)): GO TO WE 
4077 IF a=10 THEN PRINT AT 10,12;" PASTING ";: GO SUB 4099: FOR 
n=i TO 11: LET z(hereti,n)=a(n): NEXT n: GO TO VE 

4078 IF a=11 THEN PRINT AT 10,12;" CUTTING ";: DIM ali): FOR n 
=4 TO 11: LET a(n)=z(here+i,n): NEXT n: GO SUB 4101: GO TO VE 
4079 IF a=12 THEN PRINT AT 10,11; DELETING ";: GO SUB 4101: GO 
TO WE # 

4080 IF a=13 OR a=14 THEN GO TO Hk 


4081 IF a=15 THEN GO SUB 4010: LET c=hereti: 


PRINT AT 18,z;"#"; 


here;: FOR n=c TO c: GO SUB 3082: NEXT n: GO SUB Key: GO TO SE 
4082 GO TO Hk 

4096 ON ERR GO TO HK: INPUT "SELECT ITEM by # ";1$: LET here=VA 
L c’o"+I$): ON ERR RESET : IF here<i THEN LET here=i 

4097 IF here>z(i,i) THEN LET here=z¢i;i> 

4098 GO TO WE 

4099 IF z(i,i)=z THEN LET z(i,i)=i: LET here=i: RETURN 

4100 GO TO 300 en ps 

4101 IF here=z THEN GO SUB Err: RETURN 

4102 GO TO 302 

4500 PRINT " WIDJUP EDIT SERVICE DATA ENTRY AND MO 
DIFICATION "''," ITEM # ";here;" ";: READ I$: PRINT " "; 18," "": 
PRINT " 0 CANCEL ": FOR k=ii TO six: READ I$: PRINT I8$,z(c,k) 
: NEXT k: FOR k=? TO 11: PRINT ” "sk-i,z¢€c,k): NEXT k 

4501 PRINT AT 10,v;"¥ Copies..";AT 11,v;"¥ Pitch=";AT 12,v;"X Co 
pies. .";AT 13,v;"X Pitch="; AT 14;11;"10 Eraser.."'" 11 INSTAL 
L 

4502 PLOT 0,175: DRAW 255,z: DRAW z,-150: DRAW -255,z: DRAW z,15 
ce] 

4503 IF cc=i12 THEN PRINT AT 20,0;"QUADRANT SPRITES”'"1=:, 1,35 
1,455, 551,625, 721,855"; 

4510 RETURN 

4901 DATA i,i,i,.02,z,1,2,i1,2,z2 

4902 DATA i,i,i,.02,z,1i,z,i,z,z 

4903 DATA i,i,.6,.3,z,1,2,1,2,2z 

4904 DATA i,i,.03,1,z,1,z2,1,2,2 


4905 DATA i,i,1.5,.02,z,1,z,i,z,z 
4906 DATA i,i,1.5,-.02,2,4,2,1,2,2 
4907 DATA 1,i,1.5,.02,z,i,z,i, 
4908 DATA i,1,1.5,-.02,z,1,2,1,2,z 
4909 DATA ii,i,i,ii,.02,i,z,4, 


’ 
’ i, Zz 

4910 DATA i,i,.04,z,2,2,.3,7,.1 

4911 DATA i,i,.04,z2,2,7,.1,2,.3 

4912 DATA i,i,.04,1,5,1,z,1,2,z 

5000 GO SUB ST: LET z¢(i,id=z¢(i,i)+i: LET here=z(i, i> 

$001 ON ERR RESET : INPUT "Select by # "; I$ 

S002 ON ERR GO TO Add+i: LET a=VAL ("0"+I$); ON ERR RESET : IF 
a<i OR a>12 THEN GO SUB Err: GO TO Addti 

5003 LET c=hereti: LET fixx=z: RESTORE 4900+a: FOR n=2 TO 11: RE 

AD al: LET z(c,n)=al: NEXT n 

5004 LET g$="010203040505060607080910": LET cc=ata-1: LET zc, i? 

=VAL (g$(cc TO ccot+1)): IF a=6 OR a=8 THEN LET z(c,5)=-z(c,5) 

5005 LET cc=a: GO TO Fixti 

5010 LET c#hereti: LET fixx=i: DIM e(11): FOR n=i TO 11: LET e(n 
.=z(c,n): NEXT n: LET cc=e(i): LET cc=ccot+(i AND cco>5)4+¢(1i AND cc> 

6)+¢(L AND (cc=5 OR cc=6) AND e(5)<z): IF here<l THEN GO SUB Err 
: GO TO WE 

5011 CLS : RESTORE 3300+cce: GO SUB 4500 

5012 ON ERR RESET : INPUT "Select ";1$: IF I$="" THEN GO SUB E 

rr: GO TO Fixtii 

5013 LET al=[$¢ TO i)="0": IF (al AND Fixx=i) THEN FOR n=i TO 1 

1: LET z(hereti,n)=e(n): NEXT n: GO TO SE 

5014 IF (al AND Fixx=z) THEN LET z¢hereti,id=z: LET z¢(i,id=z(i, 

i)-i: LET here=z(i,i): GO TO SE 

5015 ON ERR GO TO Fixt+ii: LET a=VAL I$: ON ERR RESET : IF atl 

OR a>11l THEN GO SUB Err: GO TO Fixtii 

5016 IF a=11 THEN GO TO 5022 

5017 ON ERR RESET : LET Row=at+4: PRINT AT Row,16; OVER i;" 

";AT Row,16;: INPUT "Value="; 1 

5016 ON ERR GO TO S021; LET bb=VAL ("0'+I$): ON ERR RESET : IF 
a=4 THEN IF cc=6 OR cc=8 THEN LET bb=-ABS bb 

5019 IF cc=12 AND a=5 THEN IF bb<i OR bb>& THEN GO SUB Err: GO 
TO Fixtii : 

5020 LET z(c,at+id=bb: PRINT bb;" ";: GO TO 5012 

$021 ON ERR RESET : GO SUB Err: GO TO 5017 

5022 IF £$<>"No Data’ THEN GO TO SE 

5023 ON ERR RESET : INPUT "FILE NAME (less.AZ ext)? ";f8% ' 

5024 IF £$="" OR LEN f$>six THEN GO SUB Err: GO TO 5023 

$025 LET f$=f$+". AZ": GO TO SE t 

6000 FOR n=1 TO 20: FOR 1=1 TO 10: PRINT AT n-1,1+1+1~-3;CODE j#¢ 

n,1l): NEXT 1: NEXT n: STOP : GO TO 6000 

7770 GO SUB 7771: FOR j=1 TO 159: POKE LDO+j-1,CODE U$(j): NEXT 

j: RANDOMIZE USR (LDO+49): LET Wa=PEEK 23631+256xPEEK 23632: LET 
We=INT (LD0/256): POKE Wat15,LD0-256*Wce: POKE Wa+16,Wc: RETURN 

7771 LET LDO=26995: GO SUB 7776: RETURN 

7776 LET W1d=INT (Ld0/256): LET Wlm=Ld0-256*Wld: LET Ld1=Ld0+76: 
LET Ld2=Ld1+5: LET Ld3=Ld2+?7: LET Ld4=Ld3+2: LET Ld5=Ld4+1: LET 
Window=Ld0+45;: RETURN 

8100 CLS : PRINT " IMAGE FILE COPY SERVICE”’'" Insert SOURCE dis 

k in drive 0, formatted DESTINATION disk in drive 1. (Empty or 
Matching)": PAUSE 0 

8102 RANDOMIZE USR 100: GO TO 0: RANDOMIZE USR 100: CAT "*.czZ" 

8104 INPUT "Filename? ";F$;" From: ";from;"'To: ";to 

6106 CLS : FOR n=from TO to: LET hé=f£8¢ TO 3)+STRS n+".CZ": PAUS 

£ 40: RANDOMIZE USR 100: GO TO 0: RANDOMIZE USR 100: LOAD hs cOoD 

E ' 


43 ‘ 


, 
Zz 
+z 
Z 


8108 PAUSE 40: RANDOMIZE USR 100: GO TO 1: RANDOMIZE USR 100: SA 

VE h$ CODE 16384, 4096 

8110 NEXT n 

8140 STOP : GO TO 8100 

8995 ON ERR RESET : CLS : PRINT AT 10,4;" Initializing CAD.BO " 

i: LET s=1: LET kk=s: LET a=s: LET b=s: LET c=s: LET d= 
: LET bi=s: LET j FOR L=s TO s: NEXT L: L 

ET ff=s: LET ee=44: LET aa=201: LET 1=s: LET ws 

8996 LET kl1=111/216: LET z=s-s: FOR n=s TO s: NEXT n: FOR k=s TO 

s: NEXT k: LET e=s: LET g=s: LET h=s 

6997 LET ii=iti: LET iii=iiti: LET iv=i1i+ii: LET v=iv+i: LET six 

=vts: LET xx=ivt*v: LET drive=z: LET Gdrive=i: LET Ddrive=drive 

LET Here=s 

8998 LET Main=9000: LET Me=9006: LET Err=Met+i: LET Key=Errt+i: LE 

T Dump=451: LET SR=3000: LET SH=4060: LET WE=4065: LET ST=3230: 

LET SD=6000: LET WD=6000: LET HE=305: LET HK=4070: LET ADD=5000: 

LET FIX=5010: LET jj=449: LET rr=1302 

69909 DIM z(100,11): LET F$="No Data”: LET LK=100: RANDOMIZE USR 

LK: LOAD "CAD.CU"CODE : RANDOMIZE USR LK: LOAD "PmodO.A$" DATA u 

$0): GO SUB 7770 

9000 ON ERR RESET : INVERSE z: PAPER 7: INK z: BORDER 6: CLS : 

PRINT " The WIDJUP Co. (C)1989..CAD#2 MAIN MENU",” F 

UNCTION",*DESCRIPTION’,"": PRINT '* 1 LOAD","’PCB Data Array"''" 

2 CREATE","New PCB"''" 3 EDIT",”PCB Data Array"''" 4 DISPLAY- 

"," PCB"? '" § DIRECTORY”,”’Drives 0-4"'’''t 6 REPORT”’,"”LPRINT Data 

utr @  GENERATE",”PCB Image”''" 6 COPY", From Image File"''" 9 

SAVE”,”"PCB Data Array” 

9001 INPUT "SELECT by # ";1$: IF I$="" THEN GO TO Me 

9002 IF [$="'q” OR [$="Q" THEN STOP : RANDOMIZE USR 100: LOAD "S 

HELL. Bw” 

9003 ON ERR GO TO Me: LET n=VAL I$: ON ERR RESET : IF n>9 OR n 

<i THEN GO TO Ne = 

9004 GO SUB SR+xxxn 

9005 GO SUB Key: GO TO Main 

9006 ON ERR RESET : GO SUB Err: GO TO Mainti 


9007 PRINT #41;AT z,z;" BAD INPUT. TRY AGAIN. ": PAUSE 60: PRINT 
#1;AT z,z,,: RETURN 
9008 PRINT #1;AT z,six;" PRESS ANY KEY ";: PAUSE z: RETURN 


9093 PRINT AT xx-ii,i;' DISK FULL. INSTALL ANOTHER. "'" Enter 

"'Go"'" when ready.”: RANDOMIZE USR LK: GO TO Drive: FOR n=1 TO 8 
BEEP .3,10: BEEP .3,22: NEXT n 

9004 INPUT "Enter ""GO"" when ready.”;W$: IF LEN W8<2 THEN GO T 

0 9096 

9095 IF WS¢ TO 2)="GO" THEN RANDOMIZE USR LK: GO TO Gdrive: RET 

URN 

9096 GO SUB Err: GO TO 9094 

9500 FOR n=i TO xx: GO SUB 9501: PAUSE z: NEXT n: STOP : GO TO 9 


9501 RESTORE 9502: CLS : PRINT "GROUP ";n,'’: FOR k=i TO 11: REA 
D i$: PRINT i$;CODE j$(n,k);" "%,CODE o$(k): NEXT k: RETURN 

9502 DATA” 1 col ",” 2 rox& "," 3 dblh "," 4 lins "," 5 marg " 
»" 6 wide "," 7 n/1 "%," 8 step "," 9 Gmod ","10 Nisb ","11 Nmsb 


9990 POKE 26876, 167 

99001 INPUT "Date? ";i%: LPRINT "‘N’;CHRS 6;: LPRINT #5'"CAD. BO L 
isting ";i$'': LLIST #5: LPRINT "{0";CHRS 12;: STOP 

9999 CLEAR : RANDOMIZE USR 100: GO TO 0: RANDOMIZE USR 100: SAVE 
"CAD. BO” LINE 8995: GO TO 8995 


44 


THE SDP 


The 


rh 


Sinclair 
Desktop 
Publishing 
Journal 


Volkume 32 Issue 1 Wimter 1992 


REKe 


Felersiikai 


Ty pehmer 
‘Typeliner is the desktop publishing 


program itself is set up initially to 
print to an Epson compatible printer 


you with details. 


Grey Scale 
and DIp 


Grey Scale SCREEN$s which may then 
be LOADed into any one of several 
desktop publishing programs. 


Although I have caught wind of other 
such programs, ZPRINT 980 and 
COLOR2GREY are at the forefront of 
Grey Scale utilities Both perform a 
different function, and each is a MUST 
HAVE for your desktop publishing 
software library. (For more 
information, see the COLOR2GREY 
article in this issue). 


COLORZGREY 


As mentioned in the Grey Scale article 
in this issue of the Journal, 
COLOR2GREY is a desktop publishing 
utility which canverts a 
TS2068/Spectrum SCREENS into a 
Grey Scale SCREEN$ so that it may 
be imported into a desktop publishing 
program package. 


COLOR2GREY was written by John 
McMichael who also offers three Print 
Factory Graphic Designs packages 
which were reviewed in the previous 
issue of the Sinclair Desktop Publishing 
Journal (in Update magazine) 


COLORGREY comes on cassette with a 
two page instruction set. It is 
introduced as “a unique graphic utility 
for the TS2068", with witch “a color 
SCREENS is converted to a black & 
white SCREENS with different shades 
of grey (greyscales) replacking the 
original INK/PAPER colors” as its own 
introduction state. COLOR2GREY also 
provides a Grey Scale editor for 
customization of the Grey Scale 
patterns. 


COLOR2GREY comes standard with 
LOAD and SAVE to cassette, but it 


page instruction set contains the 
information to customize, backup and 
obtain support from the author. 


The Main Menu options include the 
following: View Grey Scale SCREENS, 
View Color Screen, Save GreyScale 
Screen, Save Color Screen, Save 
GreyScale Data, Load GreyScale Data, 
Copy GreyScale to 2040, GreyScale 


(See COLOR2GREY on page 4) 


Winter 1992_ Page 2 


Sindair. Publi Journal 
Ty peliner 
(from page 1) 


At the Main Screen, text boxes are 


SCREENS$s are pulled in from the RAM 
Disk and then sized by Typeliner. 
Although SCREEN$s are proportionally 
limited as far as sizing is concerned, 
the effects allowed by Typeliner are 
more than adequate. 


One important side feature is 
‘Typeliner’s ability to print SCREEN$s 
as Grey Scales (or SCREENS shading 
as the manual states) This feature 
can be applied or not to each SCREENS 
on the page. This way a separate 
Grey Scale conversion program such 
as COLOR2GREY could be used for 
some SCREEN$s, and the Typeliner 
feature on others. 


There are four types of boxes as well 
as horizontal and vertical _ lines 
available for placement on the page. 
The box styles are: Thin-line, 
shadowed, outline and thick-line. The 
Typeliner box/line features provide 
basic DTP building blocks. More 
complex borders can be loaded as 
SCREEN$s or even fonts! 


The figure below is an actual Larken 
(NMI) SCREENS snapshot from the 
Typeliner Main Screen for the front 
page of this issue of the Journal (Note: 
The last two SCREENS lines 22 and 
23 are missing because Typeliner will 
not import a full 24 line SCREEN$) 
As we see in the figure, the right 
hand side of the Main Screen is a 
graphic representation of the actual 
page. The text has been replaced by 
lines which represent the lengths of 
text lines graphically. 


On the left is a window which contains 
the actual text found in the first few 
lines of the text block. The text will 
change as we jump block to block with 
the NEXT command. At any time 


while paging through the text blocks, 
the E-Key (EDIT) may be pressed and 
we instantly jump to the Word-Master 
word processing program at the exact 
Jocation of the start of the text block 
we were viewing. Thus, we have "Edit 
on the Fly” capabilities. 


Once the page format is created the 
actual text can be inputed to fit 
within the text blocks with the VIEW 
command. Once the VIEW command 
is finished painting the screen, we end 
up with a page layout with the dotted 
text block lines removed and the 
graphical text representation of the 
page layout in its place. Finally, once 
everything is in its proper place and 
adjustments have been made, the page 
layout can be SAVEd separately and 
used later for future pages. 


There are two types of page printing 
available for output -to your 
dot-matrix printer: Draft and Print. 
The draft command is used primarily 
for visual layout of the physical page. 
‘The text printed in the Draft option 


Continued on page four_ 


Text Pagel 
Block: 01 


~ Te centred 
Bllolume 3 Issue i 

_ | Winter 1992} 

- | Edited BY Nike 
FeLerskifl} 
>center} 

Eln This Issue:f} 
> lefty 


4 

~ Welcone to 1992} 
~ Typeliner} 

- Grey Scale and 
Shading} 

- Adding a Mouse} 
- Coloreérey} 

\ COMing Ups» .} 


ycentre} 


The Sinclair Desktop Publishing Journal Winter 1992 Page 3 


INCREASE YOUR DESKTOP 
PRODUCTIVITY WITH A MOUSE 
FOR YOUR KEMPSTON PORT 


For the last three or four years I have heard several rumors 


regarding people using a Commodore 64/128 compatible mouse with 
the TS2e66ea. But due to its price Cbetween #35 and #409, I was 
not ready to experiment until I had confirming information to 

its compatibility. The Novenber-December issue of Gine-Link with 
George Chanbers’ letter to “Out of Towners" contained just the 
information I needed to make that purchase. 


The mouse I have purchased is the "Winner M3" mouse which is 
compatible with the Commodore 1358 and 1351 mice. The mouse plugs 
into any Kempston compatible joystick port. Since I have a Larken 
disk interface, I plugged my mouse into the Larken interface’s 
Kempston port. To initialize the mouse you must press and hold 
down the right mouse button when you power on the computer. This 
move can be a little tricky if you wish to activate a Larken 
AUTOBOOT progran from disk Cremenmber your must hold down the 
<ENTER> key to activate an AUTOBOOT progran while powering up>. 


My first application on which to try my mouse was the Print 
Factory’s First Edition. As soon as the program came up, the 
mouse operated flawlessly as if were made for the TS2068/Spectrun! 


And what are the advantages to using a Commodore compatible 


mouse? Let’s see... 
‘ 


One Hann Operation 
SmooTH Controtceo Movement 


Quzck anp Easy “Fire Butron” Act ruaTion 


ooo 0 


No NEED FoR SOFTWARE oR PaTcHES To ExisTING PROGRAMS 
(JusT anp PLUG anp Go!) y 


On the negative side... 


o OnLy Wonks with Kempston Comparrece Joysrack INTERFACES, 
Bur Not THe TS2@68 Jovstick Ports Cso far). 


o Mouse Corp rs MucH Too SHort (CanouT_24"/7@cm LONG) AND 


Limairs MopxLiry wirnour a JovsTrcK ExTENTION. Corp 
CAVAILABLE FROM RADIO SHACK FOR AROUND $16, 826-117). 


-~ Mike Felerski 


Sinclair Journal, 


Toy Ppeliner 
(from page 2) 


is just barely readable but graphics 
are much more clear. 


The final or Print option produces the 
final copy which includes three pass 
text printing for clarity and ledgibility 
of the text characters thus producing 
the page you see here. 


There are several other features 


within Typeliner including 
Renumbering, Text Blocks, 8 
measurement grid, line — spacing 


Where to Write for Further 


adjustment, double height text, and a 
built-in font editor. 


In all, Typeliner is a very complete 


dot-matrix printer 1 have ever seen 
from a TS2068/Spectrum. Although 
the price of Typeliner seems high (and 
1 realize that most if not all 
Timex-Sinclair owners are always 
looking for a bargain), from a 
price/performance stand paint, nothing 
offered in the Timex-Sinclair world 
even comes close. 


Word-Master, Typeliner and Headliner John McMichael 


Jack Dohany 
390 Rutherford 

Redwood City, CA 94061 
Phone: (415) 367-7781 


MG Enterprises 

1419 72 7th Street 
Oregon City, OR 97045 
Phone: (S03) 655-7484 


POG 

61 School Street 
Berrow-In-Furness 
Cumbria, UK 


1710 Palmer Drive 
Laramie, WY 82070 
Phone (307) 742-4530 


Print Factory DTP Software 


Byte Power 

1748 Meadowview Avenue 
Pickering, Ontario LIV 3G8 
Canada 


Print Factory Graphics 
John McMichael 

1710 Palmer Drive 
Laramie, WY 82070 
Phone: (307) 742-4530 


Fonts and More 


The Making of this Issue... 


This issue of the Sinclair Desktop Publishing Journal was created using 
Word-Master with Typeliner for the first, second and fourth peges. The third 
page was created using The Print Factory's First Edition program. The new 
SOPJ masthead was fabricated with The Print Factory's Quick Screen program, 


and the Companicn's Super Set fonts. 


The SCREENS snapshot on page two was taken with the Larken NMI button 
and was loaded directly from the snapshot disk save into Word-Mester and 
Typeliner. All boxes and lines were provided through the Typetiner program 
Box/Line feature. Headline fonts came from Word-Master/Typeliners Fat_Face 


font. 


Winter 1992 4 


Up Coming 1m 
the SDP... 


In future fesues of the Sinclair Desktop 
Publihing Journal we will look at the 
DK’Tronics Light Writer light pen, the 
Genius Mouse and maybe the 128K of 
the OCP Art Studio. 


Currently my TSSOO is out of 
commission. But upon its repair we 
will return to covering the 
Master-Scribe desktop _ publishing 
program for the TSI000 and TS1S00 
family. See ya soon! 


Eun 2 apn-aen se CARR 


MG Enterprises 
1419 1/2 7th Street 
Oregon City, OR 9704S 
Phone: (S03) 655-7484 


Video Interface, SCREENS Snapper 
Romantic Robot UK Ltd. 


54 Deanscroft Avenue 
London NW9 8EN 


Fenton, Stoke-On-Trent ST4 2RS 


England 
Phone: 0782-744707 (24 Hours) 


‘Sinclair Desktop Publishing Journal 
1284 Brushwood Avenue 
Cincinnati, OH 945224 


COLORZGREY 


Editor, Do Another Conversion and 
Quit to BASIC. The operation is very 
simple: When the program LOADs, it 
asks for the filename of the SCREENS 
be converted, and it then LOADs the 
SCREENS and begins the conversion. 


When it is done you can view the 
original SCREENS and the converted 
Grey Scale SCREENS If you like it, 
you can SAVE it or you can do 
another conversion, 


2009-162-ZTE-T 


“pS29p 


“NI ‘stLodeue.puy 


"3 POOM UOFLLM TEZG 
uasbuyoy [ned 
ueLseage] *S"n 


“LLeo Aew nok ‘*suotysanb Aue ‘asunos 40 


"aauj St abeysod pue sysip ayow vo ¢ uapug “ySIp uad OG°g¢ JO JSOD eB ye S¥SLP ApLAosd ued J SYSLM NOK 4] 


ABADD 
€06 OG'AON pastaAou: 
tog Leatetes 
Tlv Pas lads’ 
291 pastaau* 
96 pas Aad’ 
I reese 
9bS 26°24 pastaau: 
OE 16"AON MAN’ *** 
STE O6°AON MON‘ **** 
9b2 26°44 pastaad- 
BI 26"UeP pastAad* 
gag creat epee 


zeot *°°'**( AINO SdVUL + ADAIL *L 


6sp * 
zz ° 
Sb 
189° 
Tos ° 
Tes T6°AON MAN'S *'* 
B61 26"URP pastas: 
G6I 06°AON pastaa.: 
HL crane eens 
ObS z6‘UeP pasiaau- 
Ben it nceret es 
€b2 


09 
$40}aS aat4 


*( apogauLyrew/s zt yoo} 


sree *( SOLIELE AN Leuauag 
“**( sarqiitan Adoo g utq 


**( sweuBoud ysiLeLoads 
paasasay 


"(wou se 


( papocap Wow We 


“te'( 998 SOLIELLIN NOISd 


s$juazUuo) 


stttsseseeess( Squog B SOLFLLEGN 4aquisg )* 
TCT uorsuag )* 


NOAAM FO AAAS Sa 


fot 
23aaaaa| 


=== 


1 La hegkslestest_l_! 


| 
oo 


04 spunj yBnoua pue ‘pazsanbau ysip yore vos ¥SLp payzeuoy & BuLpuas Kg 


822 
18 

6eL 
1€8 
98T 
2t 

Se 
sel 
bSE 
S28 
66 

SEb 
Té2 
89b 
GL 

SOT 
80 
682 
oge 
4 
v0L 
of 

Gre 
62 
60€ 
ere 
16 


I6"AON pastaau’ 


OB AON MAN TTT Tot trees 


06'AON pas -Aaue 
26°24 pastnau: 
06'AON MON" * 

06 AON pas}Aau 


06'AON pastaad 


26°24 pastnaa: 


26'Ga4 pasinad 


“uetaeaqiy-qng * 


**( uopyeaysuowag y ISIW 


paretuguesteeeea ee 
( swesBoud 704q730NYW 
seess( aya 9 ‘yquoy 


TW 947 4oy ZLuMay 


suesBoud sotydeug 


ABayeuys/quaape saueg 


see9( sawey | euauay 


): 


ve 


)- 


*7'(S,20p Mau + 39YNOS-NON “UOISJaA UNy )* 
nrrtts**( s3qT4 JOUNOS 46°EA SOW] O4DIW )* 


06° AON pastAau: 
I6"AON pas tras: 


soresss( peuotzegnga 
stress weuBoud sqg e 


T6'AON pastAas*( Jassueds/suot yes, unum; 


$40499g 9944 


*( uBLsaq papty saznduio9 


sst**( saping Aueugl] paseq aalyouy 


$yuaquo) 


“SYSEP £ 0} SOLES Pappe A4eAgl] ay} JO SUOLSL ABA 2661 “Gad S,YLNYND 


)- 
): 


): 
): 
)- 


S‘N ay. 07 ‘abeqzsod uunzau 
SYSLP asayy fo Aue yah Kew suaquew WINYND 


"£_0N 
27H 
SU GW 
**2°SHIWH 
“TT SHIN 
"2_ONVH 
“TONY 
LUONVT 
“ec LINMaY 
*2_LIWYD 
“T LINWIY 
92 ayU9 
“Ta 
ty $9 
“e789 
"289 
ssa 
aera ts 
*2_99 
099 
*2_SOWWI 
“T SoWWa 
“ronda 
ny 
is a) 
‘Tav3 
“30109 


aweN SEG 


JUMPER SETTINGS FOR THE 3.2 MEG. DRIVE ., 
TIVERTON, RHODE ISLAND, USA - DICK TAYLOR 


Well, it sounded easy enough from Miracle System's Ad for the Gold Card in QL World; 
“enables the QL to interface to 3.2M Byte diskdrives (as well as 720K and 1.44)". I could 
certainly see the possibilities for high density drives. I knew that Miracle had problems 
with an early TEAC ED drive, but they insisted that Gold Card ROM versions 2.15 and 
later had resolved the problem (see earlier issues of IQLR for details). had been having 
minor problems with one of my floppies, and this seemed to be an opportune time to order 
a replacement and upgrade my system at the same time. Even though the cost of ED floppy 
disks is extremely high ($6.00 per diskette), I only plan on needing a half dozen of them. 
The access speed of the ED drives is 19 ms, the same as for the Miracle System's Hard 
Drive. I plan to setup several "system" disks containing associated programs and use them 
as mini hard drives (3.2 meg. cach). This will give me the advantage of a hard drive 
without the high cost. I called J.D. Hannam Distributors and ordered a 3.2M TEAC 
FD235J 3653 for $95.00 and a 1.44M TEAC FD235HF3217 for $55.00,which I received 
within a week. Then the trouble began. The 1.44M drive worked fine with the jumper 
straps in the factory settings. Even the drive select jumper was already in the position to 
make it fip2. The 3.2M drive was another story. It comes with seven jumpers and 28 pins 
on which they can be installed. Fhis provides an almost infinite number of combinations. 
Over the next week, Bob Dyl and I tried just about every one of those infinite 
combinations. Of the three write and three read formats that the drive has to recognize, 
(3.2M, 1.44M and 720K), I was able to get almost any combination of five (such as read 
all three densities but only write to 3.2M and 1.44M).My next move was to call Stuart 
Honeyball at Miracle Systems for help.To my surprise, his comment was "we tried a 
TEAC drive when we first started, but never did get it to work". This is not what we had 
been led to believe, nor the level of support we had come to expect from Miracle. He 
further suggested that I call someone in Germany (no suggestion as to who). I wrote to 
Jochen Merz and Franz Herrmann, but as it turned out we solved the problem before they 
could reply. In the meantime, Bob had been on the phone continuously to J.D.Hannam, 
TEAC and Mitsubishi with the results of our latest attempts. All three of these organizations 
were terrific and expended a considerable amount of time and effort on the part of their 
technical staff to find a resolution. The major problem they had was that they were not only 
unfamiliar with the QL/QDOS, but also had no information on Gold Card protocol. By this 
time Bob and I were convinced that a solution could be found, because we had been able to 
find combinations of strap setting that allowed us to read and write to all three densities 
even though we couldn't made it happen all at once.Finally, TEAC had us start removing 
straps. This put us on the right track that finally led to success. The illustration below 
shows the strap settings that make this drive 100% compatible. The one thing that you may 
want to change from the illustration is the strap labelled DSO. The position shown. is for the » 
drive to be Fip1. If you want it configured for Fip2 then the DSO strap would have to be 
shifted to A1-B1.These drives work fantastic, provide a tremendous upgrade in access ' 
speed and storage capability and I would recommend them to anyone with a Gold Card. 


TEAC FD235J 3653(US VERSION) 
TEAC FD235J 3650(EUROPEON VERSION) 
AS RECEIVED | MODIFIED SETTINGS 


TS2068 UPDATE ISSUE DISKS 


These disks contain at least one major piece of software written 
specifically for disk drive and are guaranteed to be worth the 
money. The rest of the disks are filled with various utility 
programs taken from the issues of UPDATE and a few surprises 
thrown in. Half of the money goes to the author and is meant to 
encourage new programming for the TS2068 that makes use of the 
various disk drive systems. All are $20.00 per disk (add $1.00 
Canada) except where noted in the listing. Postage and handling 
is included. Both 3 1/2 and 5 1/4, 40 and 80 track available. 
Please add $5.00 for mailing to other countries. We accept 
personal checks, company checks, money orders. No charge cards 
please. 


1) Daisy Word Processor, now available for Aerco and Oliger. 


2) Bob Hartung DOSDEX UTILITY ISSUE DISK, a complete disk 
management group of programs for the Oliger Interface only. This 
includes Multi-Manager for file handling. This collection has 
recently been updated and expanded. 


3) MAIL MERGE ISSUE DISK, Oct 87 and Jan 88 issues of UPDATE 
utilities added to fill out this disk. Includes a tutor program 
for the Mail Merge program, List Looker, Purity, J-Utilities and 
Extra Memory Utilities. Larken, Oliger and Aerco versions. 


4) WIDJUP'S CAD PROGRAM, this will give you professional results 
from your TS2068 for computer aided design. Authored by William 
J. Pedersen, perhaps the NO.1 authority on the inner workings of 
the TS2068. This program can be used to create user friendly 
printed circuit boards, computer art or desktop publishing files 
It does not need expanded memory cartridges and is available in 
four versions: (a) Oliger for either IBM compatible printers or 
for the Olivetti Ink Jet. (b) Larken for IBM compatible printers 
or the Olivetti Ink Jet printer. Please specify version. NEW! 


5) OLIGER DISK DRIVE BBS PROGRAM, this allows users of the 
Oliger interface to be able to operate a disk based bulletin 
board from the TS2068. The disk is also filled with many other 
Oliger disk routines and tips on using the Oliger System. New by 
Paul Holmgren. Can use upto four DSQD disk drives. 


6)The HYBISCUS ENSEMBLE, consisting of two separate, but 
complimentary sets of programs. A): Daisy.B6 Ensemble, and B) 
Udbm.B6 Ensemble. LKDOS only, $22 each or $36 for both. The best 
file and database available for Larken, by Bill Jones. The price 
remains the same on this one, no change. Wordprocessor included. 


7) TS2068 Super Calc by Bill Jones. Available in both Larken and 
Oliger formats. Handles loans, amortization, savings and fixed 
investments, plus a calculator and all for only $15. 


UPDATE COMPUTER SYSTEMS invites you to submit software programs 
that may become Issue Disks. Please submit program on disk, with 
documentation and article to accompany the program. Our goal is 
to get North American software available and known. We also 
solicit minor programs, tips and utilities for print in future 
issues of the magazine. Please do not submit unlistable programs 
or copy protected programs. 


QL UPDATE ISSUE DISKS 


These disks contain at least one major piece of software written 
specifically for disk drive and are guaranteed to be worth the 
money. The rest of the disks are filled with various utility 
programs taken from the issues of UPDATE and aé_ few surprises 
thrown in. Half of the money goes to the author and is meant to 
encourage new programming for the QL that makes use of the 
disk drive systems, and microdrives on both the expanded and 
unexpanded QL. Where possible we will give a version for each of 


these configurations. Some of the programs take advantage of TK2 
by Tony Tebby. All are 20.00, except QLuster, which is $15.00; 


includes P & H, add $1.00 CAN.Available as 3 1/2 or 5 1/4 disks. 
Add $5.00 for mailing to other countries. We accept personal 
checks, company checks, money orders as well as International 
Postal Money Orders, but no charge cards. If ordering on MDV, 
then please include one that is already formatted, so we will 
know it will run on your QL. Due to the expense of MDVs_ this is 


necessary. If two MDVs are required we will state so in the ad. 


1) HARTUNG UTILITY ISSUE DISK- Several excellent programs = such 
as stand alone data base, Address, and QSO files. All are in 


Superbasic. Lots of hints and tricks for programmers. Requires 
some knowledge of Superbasic or a yen to learn. Recently updated 


by Bob Hartung. Address file can be used as inventory program. 
it can print out labels. Both screen or paper printouts can be 
by Alpha sort, or be by last name. 


2) CABLE ARCHIVE ISSUE DISK- Contains six Archive programs along 
with Doc files to get you going on making use of the Archive 
programming language. Also has Tasket, plus Doc file, to give 
you multi-tasking on your QL (much cheaper than QRAM or 
Taskmaster). Included is Arithmetic, a Superbasic program for 
math, along with math drills. This is for both the advanced and 
beginner user and greatly extends the use of Archive. To order 
on microdrive send two formatted microdrives, too much for one! 


3) QLUSTER ISSUE DISK by Al Feng- Q1] utilities to unclutter your 
disks and microdrives. COPY, DELETE, FORMAT, PRINT, VIEW, plus 
extended use of some Tool Kit 2 commands. TK2 is required. These 
are TURBO compiled for speed. -Multitasks and uses minimal key 
presses. Includes Fast-Disk-and Vegemat2, a super clone making 
program. Also Snap Shot-a directory column or condensed printout 


program. 


4) DOS EMULATOR COMPANION ISSUE DISK by Al Feng- Just released 
in Oct. issue. Makes better use of Solution, PC Conqueror, 
DisCover, XOVER, QLuster and scr_codes. If you are going to use 

the emulators, then check this out, you won’t regret this buy. 


5) Q@LuMSi DOS by Al Feng- a MSDOS simulator and front’ end 
program for the QL, also includes other programs by AL Feng for 
file management and cloning of programs. A Great Learning Tool 


UPDATE COMPUTER SYSTEMS invites you to submit software programs 
that may become Issue Disks. Please submit program on disk, with 
documentation and article to accompany the program. We are here 
to get North American software available and known. We solicit 
programs, tips, reviews and utilities for future issues.